Tutorial GästebuchForum » Tutorials » Help » Tutorial Gästebuch
-
22.01.2011 um 16:21 Uhr
Hallo
Ist mein erster Eintrag im Forum und ich wusste nicht ob ich jetzt wo anders zu einem Thema dazu posten sollte oder der bersicht halber lieber ein eigenes Thema aufmachen soll.
Ich hab mich fr ein neues Thema entschieden^^
Hier mein anliegen:
Ich habe zum ben mir das Tutorial Gstebuch mal durchgesehen und so umformatiert, dass ich es auch gleich besser verstehe.
Beim ersten Test hat alles gleich wunderbar funktioniert, leider wenn ich einen Gstebuch Eintrag machen will (egal ob als Admin oder als Gast) schreibt er mir immer
Das schreiben ist gescheitert!
Jetzt denke ich mir natrlich, dass es was mit der Datenbank zutun hat, aber was?
Ich habe den Quellcode nicht verndert und habe die Datenbank so wie beschrieben angelegt.
Hier der Quelltext der auf die Datenbank schreiben soll:
$schreiben = "INSERT INTO gb (id, name, email, hp, msg, ip, date, time)
VALUES ('', '$name', '$email', '$hp', '$msg', '$ip', '$datum', '$zeit'";
$results= mysql_query ($schreiben) or die ("Das Schreiben ist gescheitert!"
Was kann ich da noch vergessen haben?
Mfg
Cid
Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 22.01.2011 um 17:00 Uhr ... -
23.01.2011 um 03:10 Uhr
Hallo Cid,
hast du den Code aus dem Tutorial genommen, oder hast du dir die dort angeboteten Dateien heruntergeladen?
Die Zip-Datei enthaelt naemlich eine von mir etwas ueberarbeitet Form des Gaestebuchscriptes, die vom Inhalt des eigentlichen Tutorials von jamdesigns abweicht.
Kann es vielleicht sein, dass du dich bei der Angabe der Zugangsdaten der DB etwas vertan hast?
Eigentlich muessten beide Varianten funktionisfaehig sein, kann also nur an der DB bzw. den Zugangsdaten liegen ...
Liebe Gruesse
Alice... { signatur } ... -
23.01.2011 um 12:52 Uhr
Mahlzeit
Ich habe den Code direkt aus der Beschreibung geholt, damit ich ihn selber durcharbeiten konnte, sonst htte ich mich mit dem Quellcode nicht so schnell zurecht gefunden.
Ich habe mir jetzt eine kleine Test PHP Datei geschrieben umd die Datenbank zu testen.
Ich danke mal fr die Antwort und melde mich nochmal wenn ich rausgefunden habe woran es scheiter.
Die Datei werd ich auch mal ausprobieren.
Lg Cid
-
23.01.2011 um 15:02 Uhr
So ich habe jetzt eine Test Verbindung gemacht und habe folgendes Problem.
Zuerst hat die Verbindung zum eintragen gut funktioniert, und auf einmal nicht mehr?!
(Ohne das ich was verndert htte)
Hier mal der Quellcode:
<?php include("dbconnect.php"); ?> <?php if (isset($_POST["submit"])) { $name=$_POST["name"]; $email=$_POST["email"]; $msg=$_POST["msg"]; $eintrag = "INSERT INTO testdb (id, name, email, msg) VALUES ('$name', '$email', '$msg')"; $eintragen = mysql_query($eintrag) or die ("Eintrag wurde nicht gemacht"); } $abfrage = "SELECT * FROM testdb"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_array($ergebnis)) { echo $row['name']."<br />"; } ?> <html> <head> <title>Test Script PHP MySql</title> </head> <body> <form action="test.php" method="POST"> <b>Vorname:</b> <input type="text" name="name" size="30" maxlength="20" value=""><br> <b>E-Mail:</b> <input type="text" name="email" size="30" maxlength="20" value=""><br> <textarea cols="55" rows="10" value="" name="msg"></textarea> </p> <input type="submit" value="Abschicken" title="Eintrag machen" name="submit" /> <input type="reset" value="Zuruecksetzen" title="Felder leeren" name="reset" /></td> <br/> <br/><br/> </form> </body> </html>
Als ausgabe bekomme ich aber die Namen ausgegeben:
--------------------------------------------
while($row = mysql_fetch_array($ergebnis))
{
echo $row['name']."<br />";
}
--------------------------------------------
Also gehe ich davon aus das die Verbingung da ist.
Wenn ich jetzt auf die phpmyadmin Seite gehen will bekomme ich folgende meldung:
Die Sitzung konnte nicht ohne Fehler gestartet werden, schauen Sie bitte in das Fehlerprokoll von PHP und/oder Ihres Webservers und konfigurieren Sie PHP entsprechend (session.save_path, Schreibrechte).
Frage 1.
Was kann den da jetzt aufeinmal umgestellt sein, mir kommt vor wenn ich Daten in eine Datenbank hineinspiele und dann in phpmyadmin rein will kommt das?
Hatte das schon mal und ist nach einer Zeit dann wieder verschwunden.
Frage 2.
Ist der Quellcode so korrekt oder sollte ich da was ndern?
Danke im voraus
Cid
-
23.01.2011 um 16:43 Uhr
Jetzt habe ich eine Stunde etwa gewartet und pause gemacht. Und nun komme ich wieder ins phpmyadmin rein???
Leider gibt das genannte Test Script jetzt folgendes aus:
Eintrag konnte nicht gemacht werden.
??? Kenn mich garnicht mehr aus ???
-
24.01.2011 um 11:35 Uhr
theoretisch sollte dein Script so eigentlich funktionieren, wobei du id beim Insert weglassen solltest, oder aber einen 'Platzhalter' verwenden solltest, sonst schreibst du ggf. den Namen in id, die Email dann in den Namen, usw. ...
Probier mal ob's damit klappt ...
<?php // Zum Aufbau der Verbindung zur Datenbank // die Daten erhalten Sie von Ihrem Provider mysql_connect("localhost", "BENUTZER","PASSWORT") OR DIE ("Keine Verbindung moeglich"); mysql_select_db("NAMEderDATENBANK") or die ("Die Datenbank existiert nicht."); if (isset($_POST["submit"])) { $name = mysql_real_escape_string($_POST["name"]); $email = mysql_real_escape_string($_POST["email"]); $msg = mysql_real_escape_string($_POST["msg"]); $eintrag = "INSERT INTO testdb (id, name, email, msg) VALUES ('$name', '$email', '$msg')"; $eintragen = mysql_query($eintrag) OR DIE (mysql_error()); ?> <html> <head> <title>Test Script PHP MySql</title> </head> <body> <form action="" method="POST"> <b>Vorname:</b> <input type="text" name="name" size="30" maxlength="20" value=""><br> <b>E-Mail:</b> <input type="text" name="email" size="30" maxlength="20" value=""><br> <textarea cols="55" rows="10" value="" name="msg"></textarea> </p> <input type="submit" value="Abschicken" title="Eintrag machen" name="submit" /> <input type="reset" value="Zuruecksetzen" title="Felder leeren" name="reset" /></td> <br/> <br/><br/> </form> </body> </html>
Der Befehlt mysql_error(); gibt dir - wenn du glueck hast - eine genauere Fehlerbezeichnung aus, sofern vorhanden
Wobei ich jetzt einfach mal behaupte deine Apache Webserver hat ne kleine Meise, geht - geht nicht, solche Spielchen sollten eigentlich nicht vorkommen ....
Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 24.01.2011 um 11:37 Uhr ...... { signatur } ... -
24.01.2011 um 21:15 Uhr
Juhuuuuuuuu!!!
Der Tipp mit dem mysql_error hat mich weiter gebracht, es war wirklich ein Problem mit der id. Der funktionierente Quelltext sieht jetzt so aus:
$eintrag = "INSERT INTO testdb (name, email, msg) VALUES ('$name', '$email', '$msg'";
$eintragen = mysql_query($eintrag) or die (mysql_error());
Ich habe einfach die id ganz herausgenommen, hat hoffentlich keine nachwirkungen.
Also im Moment funktioniert die Test.php, ich werd mal weiter probieren.
War sicher nicht die letzte Frage
Danke nochmal
-
24.01.2011 um 21:37 Uhr
Ich habe mir jetzt auch noch mal die Originale Tutorial des Gstebuches angesehen. Dort habe ich es jetzt auch mit dem mysql_error versucht und folgendes heraus bekommen.
Field 'kommentar' doesn't have a default value
Das war von Anfang an das Problem, dadurch das ich in der MySql Datenbank die Spalte Kommentar auf NotNull habe, kommt diese Fehlermeldung. Laut ein paar anderen Internet Seiten soll das ein bug sein?! Aber da kenn ich mich jetzt zuwenig aus das ich dagegen was machen knnte.
Kennt sich jemand mit diesem Problem hier aus?
Kann ich das irgendwie umgehen, so das die Tutorial weiter mit Kommentar Funktion machen kann?
LG Cid