BITTE Hilfe bei Gästebuch

  • Themenstarter Themenstarter Raptor72
  • Beginndatum Beginndatum
So das habe ich geändert jetzt, ist ja auch logisch das es so eine Abfrage sein sollte :-D

Das Problem ist einfach das er mir bei 2 mal www oder http:// keine Warnung ausgibt und auch wenn alles richtig ist keine Info ausgibt das es ins Gästebuch eingetragen wurde, momentan habe ich mich glaube ich gut verzettelt :-D
 
Zu diesen beiden Variablen komm aber noch die Variable $linkcheck. Bist du sicher, dass diese Variable da gebraucht wird? Was soll das für einen Sinn haben, einen Text zu prüfen, der nicht geändert werden soll? Wozu dient das? Für Spam-Bots?

Ich würde wenigsten mal testen, ob es ohne $linkcheck funktioniert.

Hast du, wie von timestamp vorgeschlagen, die Zugriffe auf $_POST angepasst?
 
Also auch ohne $linkcheck funktioniert es nicht, habe die $_POST's angepasst und ja, der $linkcheck soll eigentlich für Spam Bots sein.
Aber wie gesagt bin ich auch noch etwas Anfänger und kenne mich daher noch nicht allzu gut aus :-D
 
Dann musst du einfach mal sehen was dazu führt indem du Debuggst.
Jede Variable die irgendwo in einer Bedingung steht ausgeben lassen wie zb.:

PHP:
echo $name;
echo $email;
echo $eintrag;
echo $linkcheck;
echo $urlcheck;
echo $urlcheck2;
if ($name && $email && $eintrag && $linkcheck && $urlcheck && $urlcheck2) {
// eintrag in die DB
}

Desweitern würde ich:
PHP:
$eintrag_gb = mysql_query("INSERT INTO guestbook (name, email, inhalt) VALUES ('$name','$email', '$inhalt')");
echo mysql_error();

so schreiben:
PHP:
$eintrag_gb = mysql_query("INSERT INTO guestbook (name, email, inhalt) VALUES ('$name','$email', '$inhalt')") or die(mysql_error());
 
Also das debuggen war ok und in Ordnung so, den Code habe ich auch umgeändert in --> or die <-- aber ansonsten immer noch die gleichen "Fehler" wie vorher auch.
Kann alles machen,wenn ich eine Zeile auslasse kommt auch die Meldung das z.B. der Text vergessen wurde oder das bei der eMail ein schreibfehler sei, aber wenn ich 2 mal ein www oder http eingebe passiert nichts, bekomme white screen aber keinerlei Fehlermeldung, auch wenn es richtig einegeben ist bekomme ich white screen, also nur einen leeren weißen Bildschirm aber auch die ohne Meldung das es ins GB eingetragen wurde.
 
So, habe den Code an den Anfang geschrieben und dann zeigt er mir jetzt diese Zeile an.

Code:
Deprecated: Function ereg() is deprecated in C:\xampp\htdocs\Homepage\gbeintrag.php on line 24
 
anstatt:
PHP:
if (ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+$)", $email) or !$email) { 
if (!$email) { $email=true; }
}

dies hier:
PHP:
if (preg_match_all("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+$)", $email) or !$email) { 
if (!$email) { $email=true; }
}
 
Zuletzt bearbeitet:
Ja [phpf]preg_match_all[/phpf] erwartet auch 3 Parameter, der 3. soll ein Array sein, dass die gefundenen Stellen speichert.
Mach einfach:
PHP:
$testarray = array();
if (preg_match_all("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+$)", $email, $testarray) or !$email) { 
if (!$email) { $email=true; }
}
 
Zurück