Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Wichtig @ Thomas Wölfer

T E S T E R / 7 Antworten / Baumansicht Nickles

Hi, ich habe das Gästebuchscript von dir ausprobiert und
es funktioniert nicht:

Statt dem eintrag, der eigentlich kommen sollte, kommt das
hier:

Fehler beim eintragen: insert into gaestebuch ( datum, name, email, text) values( NOW(), \'tz\', \'hgf\', \'hg\')
Fehler beim query: select DATE_FORMAT(datum,\'%d.%m.%Y\') as date,name,email,text from gaestebuch order by id desc

keine Ahnung was das soll

Hier der komplette Script den ich verwendet habe, wäre echt super, wenn du mir helfen könntest:

<?php



$DB_NAME = "meine tabelle, die auch \'gaestebuch\' heisst";
$DB_USERNAME = "mein username";
$DB_PASSWORD = "mein passwort";



$DB_TABLE_NAME = "gaestebuch";
$DB_SERVER = "localhost";




function DoForm()
{
print \'<form action=gaestebuch.php>\';
print \'Name: <input type=text name=name width=20><br>\';
print \'eMail: <input type=text name=email width=20><br>\';
print \'Dein Kommentar:<br>\';
print \'<textarea name=text cols=20 rows=5></textarea><br>\';
print \'<input type=hidden name=cmd value=enter>\';
print \'<input type=submit value=Eintragen>\';
print \'</form>\';
}




function InsertData( $name, $email, $text)
{

global $DB_NAME;
global $DB_USERNAME;
global $DB_PASSWORD;
global $DB_TABLE_NAME;
global $DB_SERVER;


$c = mysql_connect( $DB_SERVER, $DB_USERNAME, $DB_PASSWORD);


$s = "insert into $DB_TABLE_NAME ( datum, name, email, text) values( NOW(), \'$name\', \'$email\', \'$text\')";


$r = mysql_db_query( $DB_NAME, $s, $c);


if( ! $r) print "<b>Fehler beim eintragen: $s </b><br>";
}



function ListContent()
{

global $DB_NAME;
global $DB_USERNAME;
global $DB_PASSWORD;
global $DB_TABLE_NAME;
global $DB_SERVER;


$c = mysql_connect( $DB_SERVER, $DB_USERNAME, $DB_PASSWORD);


if( ! $c) print \'CONNECT FAILED<br>\';


$s = "select DATE_FORMAT(datum,\'%d.%m.%Y\') as date,name,email,text from " . $DB_TABLE_NAME . " order by id desc";


$r = mysql_db_query( "nickles", $s, $c);


if( ! $r) print "<b>Fehler beim query: $s </b><br>";
else
{

$n = mysql_num_rows( $r);


for( $i=0; $i<$n;$i++)
{

$o = mysql_fetch_object( $r);


print "Von <a href=mailto:$o->email>$o->name</a> am $o->date:<br>";
print $o->text;
print \'<br><br><hr size=1>\';
}
}
}




print \'<html><head><title>Mein Gaestebuch</title></head><body>\';

print \'<h2>Hallo auf meinem Gästebuch! Tragt doch auch was ein!</h2><hr size=1>\';


DoForm();


if( IsSet( $cmd)) InsertData( $name, $email, $text);


ListContent();


print \'</body></html>\';

?>

bei Antwort benachrichtigen
thomas woelfer T E S T E R „Wichtig @ Thomas Wölfer“
Optionen

wenn der insert fehlschlaegt dann hat das meist einen der folgenden gruende:


  • myql_connect ist bereits fehlgeschlagen ( -> rueckgabewert davon ueberpruefen)
  • die tabelle existiert gar nicht (nicht vorher angelegt ?)
  • die tabelle hat einen anderen namen (gross / kleinschreibung eirchtig ?)
  • die felder in der tabelle haben anderen namen ( gross/kleinschriebung ?)


WM_HOPETHISHELPS
thomas woelfer
this posting contains no tpyos.
bei Antwort benachrichtigen
T E S T E R thomas woelfer „wenn der insert fehlschlaegt dann hat das meist einen der folgenden gruende:...“
Optionen

Hi, hmmm also die von mir angegebenen Daten stimmen, denn das script habe ich auch komplett von dir übernommen. meine tabelle heisst auch gaestebuch. alle einträge in der datenbank sind klein. eine frage vielleicht noch: muss denn nur einmal die variable definiert werden oder muss man die variable mehrmals angeben? Sprich jedesmal für den platzhalter DB_USERNAME sein richtiges passwort schreiben, oder wird der wert dieser variablen immer aus der oben bereits definierten variable geholt, die bereits mein passwort als wert zugewiesen bekommen hat?
Mit groß und kleinschreibung sind aber doch nur meine eigenen daten gemeint oder also passwort, tabellenname etc...in deinem script bleibt alles unverändert

kann man denn die tabelle auf funkionalität testen??

bei Antwort benachrichtigen
thomas woelfer T E S T E R „Hi, hmmm also die von mir angegebenen Daten stimmen, denn das script habe ich...“
Optionen

naja, wenn die tabelle im phpmyadmin angezeigt wird, dann ist sie auch da - mehr gibts da eigentlich nicht zu testen. ich vermute, das die anpassung ganz oben im script nicht richtig ist. da steht bei dir folgendes drin:

$DB_NAME = "meine tabelle, die auch 'gaestebuch' heisst";
$DB_USERNAME = "mein username";
$DB_PASSWORD = "mein passwort";
$DB_TABLE_NAME = "gaestebuch";
$DB_SERVER = "localhost";

- und das ist nicht richtig. unter $DB_NAME muss der name der _datenbank_ stehen und nicht der name der tabelle. ferner kann es sein (das kann ich aber ohne zugangsberechtigung natuerilch nicht ueberpruefen), das der $DB_SERVER eben nicht 'localhost' sondern ein anderer rechner ist. beides kann man im phpMyAdmin kurz nachsehen: der 'rechnername' steht unter der willkommens-seite MySQL 3.23.37 auf localhost' - in dem fall ist das richtig.... der datenbank-name steht im linken bereich direkt unter 'home', also oberhalb des namens des gaestebuches.

WM_HOPETHISHELPS
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen
T E S T E R Nachtrag zu: „Wichtig @ Thomas Wölfer“
Optionen

Hi, ich habe mich nochmal drangeacht, ich bekomme jetzt nur noch die fehlermeldung:
Fehler beim query: select DATE_FORMAT(datum,'%d.%m.%Y') as date,name,email,text from gaestebuch order by id desc

Die andere zeile kommt jetzt nicht mehr, aber eingetrageb weden kann immernoch nichts

Hättest du eine Idee?


bei Antwort benachrichtigen
xafford T E S T E R „Hi, ich habe mich nochmal drangeacht, ich bekomme jetzt nur noch die...“
Optionen

packe mal DATE_FORMAT(...) in eine eigene variable und nutze diese im query.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Heinz_Malcher xafford „packe mal DATE_FORMAT ... in eine eigene variable und nutze diese im query.“
Optionen

Hi, also bei mir funktioniert es nun, der Fehler, den ich auch übersehen habe war simpel:

$r = mysql_db_query( "nickles", $s, $c);

das nickles musst du ersetzen durch deinen datenbankname (vorsicht!!) nicht durch den
tabellennamen gaestebuch. nun müsste es eigentlich alles funktionieren.

Gruß Heinz_Malcher

bei Antwort benachrichtigen
Heinz_Malcher T E S T E R „Wichtig @ Thomas Wölfer“
Optionen


Das Problem liegt glaube ich daran, dass keine HTML, die die eingetragenen inhalte ausgibt, automatisch erzeugt wird.

Gruß Heinz
Ich probier noch etwas rum und poste dann, wenn ich was habe.

[Diese Nachricht wurde nachträglich bearbeitet.]
bei Antwort benachrichtigen