| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

14-03-2009, 09:18
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
Gästebuch
Hallo,
ich habe ein Problem beim Scripten. Ich versuche ein Gästebuch zu erstellen, leider kommt solcher Fehler raus:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /data/apache/users/kilu.de/boepple/www/guestbook.php on line 50
Hier mein Code:
PHP-Code:
<form action="<?php echo $PHP_SELF ?>" method="post" name="eintragung">
<k>Name:</k><h1><input type="text" name="name" size="25"> </br> </h1>
<k>Email:</k><h1><input type="text" name="email" size="25"> </br> </h1>
<k>Homepage:</k><h1><input type="text" name="homepage" size="25"> </br> </h1>
<k>Message:</k><h1><textarea name="message" cols="20" rows="25"></textarea> </br> </h1>
<h1><input type="submit" name="neueintrag" value="Eintragen"> </h1>
<h1><input type="reset" value="Löschen"> </h1>
<div>
</form>
<?php>
// Zunächst brauchen wir eine Datenbankverbindung:
$db = mysql_connect('localhost', 'name', '****');
if (mysqli_connect_errno()) {
die('Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error());
// ist zwar keine saubere Fehlermeldung aber ist ja auch nur ne einfache Inplementierung
}
mysql_select_db("datenbank"); //Datenbank auswählen in die geschrieben werden soll
if($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
$name = addslashes($name); //Zeichen die im Programm Probleme verursachen könnten in PHP Spezialzeichen umwandeln
$email = addslashes($email); // -"-
$homepage = addslashes($homepage); // -"-
$message = addslashes($message); // -"-
$sqlkommando = "INSERT INTO guestbook (id, name, email, homepage, message) VALUES ('$id', '$name', '$email', '$homepage', '$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
}
$sql = "SELECT * FROM guestbook ORDER BY id DESC";
$result = mysql_query($sql) or die("Error: " . mysql_error());;
while($daten = mysql_fetch_object($result)) // Solange wie daten ausgelesen werden können sollen
{ // sie in das Objekt '$daten' geladen und die folgende
// schleife ausgegeben werden
$datum = getdate($daten->id); // Datum aus 'id' konvertieren und in das 'datum' array packen
echo "Eintrag von ". stripslashes($daten->name) ."\n<br>"; // PHP sonderzeichen entfernen und name ausgeben
echo "Email: <a href=\"mailto:".stripslashes($daten->email)."\">".stripslashes($daten->email)."</a>\n<br>";
echo "Homepage: ".stripslashes($daten->homepage)."\n<br>";
echo "Geschrieben: $ndate[weekday] - $ndate[mday]/$ndate[mon]/$ndate[year] $ndate[hours]:$ndate[minutes]"; // Datum ausgeben (Englisch siehe Moartel Tutorial)
echo "<br>";
echo "Kommentar: <br>";
echo nl2br(stripslashes($daten->message)); //nl2br = Zeilenumbrüche in HTML-Umbrüche (<br>) umwandeln
echo "\n<br><br>\n";
}
Geändert von capval (14-03-2009 um 09:38 Uhr)
|

14-03-2009, 09:24
|
|
ModestLife
Registrierter Benutzer
|
|
Registriert seit: Sep 2007
Beiträge: 105
|
|
Du hast das mysql_query() vergessen.
|

14-03-2009, 09:40
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
jetzt kommt kein Fehler raus, aber wenn ich was eintrage, dann gibt es keine Eintragung zu sehen.
|

14-03-2009, 09:46
|
|
uspri
Registrierter Benutzer
|
|
Registriert seit: Nov 2002
Ort: Freiberg / Sachsen
Beiträge: 83
|
|
|

14-03-2009, 10:37
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
Parse error: syntax error, unexpected T_IF in /data/apache/users/kilu.de/boepple/www/guestbook.php on line 20
PHP-Code:
if($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
$name = addslashes($name); //Zeichen die im Programm Probleme verursachen könnten in PHP Spezialzeichen umwandeln
$email = addslashes($email); // -"-
$homepage = addslashes($homepage); // -"-
$message = addslashes($message); // -"-
$sqlkommando = "INSERT INTO guestbook (id, name, email, homepage, message) VALUES ('$id', '$name', '$email', '$homepage', '$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
}
|

14-03-2009, 10:50
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Lass mich raten, Zeile 20 ist die erste Zeile deines Auszugs?
BTW: Wieso ignorierst du den Hinweis bezüglich Register Globals müssen wir da immer noch jeden Neuling drauf hinweisen?
|

14-03-2009, 11:02
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
[QUOTE]Original geschrieben von TobiaZ
Lass mich raten, Zeile 20 ist die erste Zeile deines Auszugs?
ja
|

14-03-2009, 11:11
|
|
ModestLife
Registrierter Benutzer
|
|
Registriert seit: Sep 2007
Beiträge: 105
|
|
Dann guck mal die Zeile darüber an.
|

14-03-2009, 12:03
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
komisch, aber es wird gar nichts in eine Datenbank eingetragen
stattdessen kommt ein Fehler, aber viel später
Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /data/apache/users/kilu.de/boepple/www/guestbook.php on line 40
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /data/apache/users/kilu.de/boepple/www/guestbook.php on line 40
Error: Access denied for user 'www-data'@'localhost' (using password: NO)
|

14-03-2009, 13:09
|
|
ModestLife
Registrierter Benutzer
|
|
Registriert seit: Sep 2007
Beiträge: 105
|
|
Vermutlich weil du mysqli_connect_errno() verwendest um die Verbindung anfangs zu überprüfen ...
|

14-03-2009, 14:00
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
Zitat:
Original geschrieben von ModestLife
Vermutlich weil du mysqli_connect_errno() verwendest um die Verbindung anfangs zu überprüfen ...
|
ohne die Zeile funktioniert auch nicht
|

14-03-2009, 15:44
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
in deinem fall wäre ein ausführliches debugging von Nöten. Lies dir das mal genau durch, dann findest du sicher sehr schnell den/die Fehler.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Geändert von Kropff (14-03-2009 um 15:46 Uhr)
|

14-03-2009, 16:03
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /data/apache/users/kilu.de/boepple/www/guestbook.php on line 41
|

14-03-2009, 16:13
|
|
ModestLife
Registrierter Benutzer
|
|
Registriert seit: Sep 2007
Beiträge: 105
|
|
Wenn du nach Hilfe fragst und dazu Anregungen erhälst, dann aber nicht darauf eingehst, werden dir die Leute nicht lange helfen. Ich bin raus ...
|

14-03-2009, 16:54
|
|
capval
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 9
|
|
Problem gelöst, danke
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|