Problem mit Tut: [PHP] Komplettes Guestbook mit MySQL

stitch

Mitglied
Ich wollte mir jetzt mal nach dem ich nur ein paar simple Sachen in PHP gemacht hab was richtiges basteln und hab mir mal dieses Tut im anderem Forum angeschaut: http://www.tutorials.de/forum/showthread.php?s=&threadid=8664

Erstmal hab ich mit PHPmyAdmin eine Datenbank mit dem Namen "guestbook" erstellt. Dort habe ich dann einfach mal diesen Block SQL Befehle eingefügt und er hat auch meiner Meinung nach alle Felder richtig erstellt. Dann hab ich den ganzen Quellcode in ne PHP Seite eingefügt und nur die Werte für den Zugang zur DB (SQL-Server, Benutzer, Passwort) und unten den Datenbank Namen abgeändert. Das ganze wollte ich dann mal zum testen starten und er bringt mir einen Parse Error. In der Zeile steht:
PHP:
{

Was ist das überhaupt und warum spuckt er nen Error? Nach meinem Verständis ist das nur ein &, der Rest wird ja wegkommentiert.

Weiss jemand rat?

thx, im vorraus
 
Danke, jetzt spuckt er schon mal keinen Fehler mehr! :)
Hat das einen tieferen Sinn oder warum schreibt er nicht gleich die richtigen Klammern in den Code?

Funktionieren tut das GB aber leider immer noch nicht. Wenn ich jetzt was in das Formular ein tippe wird kein Beitrag eingetragen. Liegt das an meinem WAMP System oder ist ein Fehler im Script? Weiss jemand rat? Muss jetzt erstmal ins Training, werde später warscheinlich mal auf nen Server im Netz laden.
 
hab's auch nicht zum laufen bekommen....hatte nur halt beim probieren annähernd das gleiche prob :)

tschau viel spaß beim training ;)
 
Meinst du ob der Beitrag nur nicht in die Seite eingefügt wird oder ob er überhaupt nicht in die DB geschrieben wird?

Weiss nicht genau, wie ich das überprüf. Ist das erste mal, dass ich was mit ner Datenbankanbindung probiere. Im phpMyAdmin steht bei der Tabelle gestbook - Daten: 0 Bytes
Ich denke mal das ist ein Hinweis, dass er den Inhalt der Form überhaupt nicht in die Datenbank schreibt, oder? Wie kann man den genauen Inhalt der Felder in einer Tabelle einsehen? Geht das auch mit dem phpMyAdmin?
 
Hi,
also das mit dem
PHP:
 {
ist ein fehler im forum script soweit ich das sehe, da bei mir die ganz normalen klammern an eben dieses stellen vorhanden sind, und ich es auch mit diesen gepostet habe.

Also musst du alle diese teile mit einer { austauschen. Dann sollte es funzen, wenn du aber weiterhin probleme hast, gib mir bescheid damit ich das Tutorial nochmal überarbeiten kann.

greetz
 
Danke, jetzt spuckt er schon mal keinen Fehler mehr! :)
Hat das einen tieferen Sinn oder warum schreibt er nicht gleich die richtigen Klammern in den Code?

Funktionieren tut das GB aber leider immer noch nicht. Wenn ich jetzt was in das Formular ein tippe wird kein Beitrag eingetragen. Liegt das an meinem WAMP System oder ist ein Fehler im Script? Weiss jemand rat? Muss jetzt erstmal ins Training, werde später warscheinlich mal auf nen Server im Netz laden.

das GB funktioniert schon, allerdings nur wenn in der "php.ini" "register_globals" auf ON steht.

da dieses aber ein sicherheitsrisiko ist sollten $_POST['variablen'] verwendet werden.

PHP:
$name = $_POST['name'];
$text = $_POST['text'];

oder direkt mit dem POST-Variablen arbeiten:


PHP:
<?php  
// Zunächst brauchen wir eine Datenbankverbindung: 
$verbindung = mysql_pconnect( "dein.mysql.server", "deinSQLbenutzername", "deinSQLpasswort"); 

if (!$verbindung) // War die verbindung NICHT erfolgreich? -> Wenn ja: Fehler auswerfen und beenden 
{ 
    echo "<br><center><b>- Keine Verbindung zur Datenbank -</b></center>"; 
    exit; 
} 

mysql_select_db("deinedatenbank"); //Datenbank auswählen in die geschrieben werden soll 

if($_POST['neueintrag']) //ueberprueft ob der submit button gedrückt wurde 
{ //Wenn ja dann daten in den guestbook table eintragen 

    $id = time(); //time() gibt die zeit seit dem beginn des Unix Zeitalters in sekunden zurück 
                  //wir benutzen id als Datums und Identifikations-Angabe, doch mehr dazu später 

         
    $sqlkommando = "INSERT INTO guestbook (id, name, email, homepage, message) VALUES ('$id', '".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_POST['homepage'])."', '".mysql_real_escape_string($_POST['message'])."')"; 
    // Auf gut deutsch: Füge in guestbook bei "id, name, email, homepage, message" die werte der variablen "$id, $name, $email, $homepage, $message" ein 

    mysql_query($sqlkommando) or die("Error: " . mysql_error()); // Kommando 'sqlkommando' ausfuehren 
                                                                 // bei misserfolg beenden und fehlermeldung ausgeben 
     
    echo "Eintragung erfolgreich hinzugefügt"; // Bestätigung ausgeben 
} 

?>

die function
PHP:
mysql_real_escape_string()
zerpflückt auf gut deutsch den eingegebenen text auf sonderzeichen und wandelt es um. mit
PHP:
stripslashes()
wird es wieder zusammengesetzt wie im unteren teil des tutorials ja gezeigt.
 
Hi Maniac_81,
aufgrund Deines Tips läuft bei mir das TuT-Gästebuch jetzt. Das einzige, was nicht funktioniert ist dei Ausgabe des Datums. Da gibt er:

geschrieben:-//:

aus. Also nur die Datum- und Zeit-Trennzeichen. Kann es sein, das das auch mit dem $_POST['variablen'] zusammenhängt?
 
Hallo,
ich stricke auch soeben an diesem guestbook. bei mir funktioniert bis jetzt auch alles, bis auf das datum.
Zuerst wurde die ID 0 in der mysql tabelle gespeichert, sodann habe ich auf auto_increment gestellt, jetzt bekomme ich zwar eine ID, galube aber nicht das das so richtig ist, den nun gibt er fuer jeden eintrag das gleiche datum.
Jemand eine Idee?
 
Zurück