Seite 1 von 3

Gästebuch speichert keine Einträge!

Verfasst: Mo 24. Jan 2005, 15:21
von pagedev
Hallo zusammen.
Habe das Gästebuch unter http://www.contenido.org/forum/viewtopi ... a105639a34 nach Anleitung installiert. Als ich einen Eintrag schrieb gab es in log folgende Fehlermeldung:

[24-Jan-2005 15:07:38] Invalid SQL: SELECT count(*) AS total FROM WHERE active=1 AND client=1<br><br>
[24-Jan-2005 15:07:38] next_record called with no query pending.
[24-Jan-2005 15:07:38] Invalid SQL: SELECT name, email, url, date, location, comments, id, active FROM WHERE active=1 AND client=1 order by date desc LIMIT 0,2<br><br>
[24-Jan-2005 15:07:38] next_record called with no query pending.
[24-Jan-2005 15:08:14] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/froschzu/public_html/xcms/cms/front_content.php(563) : eval()'d code:8) in /home/froschzu/public_html/xcms/cms/front_content.php(563) : eval()'d code on line 557
[24-Jan-2005 15:08:14] Invalid SQL: INSERT into (name, email, location, url, date, comments, active, client) VALUES ('bla', 'blu@bluewin.ch', '193.5.5.34/mail.adasoft.ch', 'derTESTER', NOW(), 'dies ist nur ein Testeintrag!!', '1', 1)<br><br>
[24-Jan-2005 15:08:17] Invalid SQL: SELECT count(*) AS total FROM WHERE active=1 AND client=1<br><br>

Wird da jemand schlau daraus? Habe das sql-query noch mit "INSERT into guestbook" erweitert, was jedoch nichts bewirkt. Die id ist auf int(8) begrenzt, ist das evtl. zu niedrig?
Für Hilfe wäre ich sehr dankbar....

Verfasst: Mo 24. Jan 2005, 15:30
von emergence
und das hast du auch gemacht

tabelle angelegt mittels:

Code: Alles auswählen

CREATE TABLE con_guestbook ( 
id int( DEFAULT '0' NOT NULL auto_increment, 
name varchar(40) NOT NULL, 
email varchar(40) NOT NULL, 
location varchar(40) NOT NULL, 
comments text NOT NULL, 
url varchar(50) NOT NULL, 
active int(1) DEFAULT '1' NOT NULL, 
client int(1) DEFAULT '1' NOT NULL, 
date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
PRIMARY KEY (id) 
); 
und in cfg_sql.inc.php müssen folgende Zeilen eingetragen werden:

Code: Alles auswählen

$cfg["Tab"]["guestbook"] = "con_guestbook"; 
$cfgTab_guestbook = "con_guestbook";

Verfasst: Mo 24. Jan 2005, 15:31
von timo
Vermutlich hast du einfach

- In cfg_sql.inc.php müssen folgende Zeilen eingetragen werden:

$cfg["Tab"]["guestbook"] = "con_guestbook";
$cfgTab_guestbook = "con_guestbook";
vergessen...

Verfasst: Mo 24. Jan 2005, 15:47
von pagedev
wenn ich dieses query ausführe (copy / paste => syntax fehler ausgeschlossen) erhalte ich folgenden Fehler:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT '0' NOT NULL auto_increment,
name varchar(40) NOT NUL

anschliessend habe ich das query abgeändert in:.
CREATE TABLE con_guestbook (
id int(8) NOT NULL auto_increment,
name varchar(40) NOT NULL,....
dann ist es fehlerlos gelaufen.

die cfg_sql Erweiterung habe ich eingfügt...

Verfasst: Mo 24. Jan 2005, 16:20
von pagedev
Das nachfolgende Query ist doch fehlerhaft oder...?! Die Klammer nach "id int(" wird nicht geschlossen. Also habe ich einfach "int( 8 ) DEFAULT '0' NOT NULL..."
gesetzt.... Läuft dieses Query bei Euch?

CREATE TABLE con_guestbook (
id int( DEFAULT '0' NOT NULL auto_increment,
name varchar(40) NOT NULL,
email varchar(40) NOT NULL,
location varchar(40) NOT NULL,
comments text NOT NULL,
url varchar(50) NOT NULL,
active int(1) DEFAULT '1' NOT NULL,
client int(1) DEFAULT '1' NOT NULL,
date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);

Verfasst: Mo 24. Jan 2005, 16:24
von emergence
ich hab das nur aus snoopys posting kopiert, getestet hab ichs nicht...
die änderung auf int( 8 ) DEFAULT '0' NOT NULL wird schon richtig sein...

importieren in datenbank

Verfasst: Mo 24. Jan 2005, 18:07
von mhl
@ pagedev

wenn du diese tabelle via phpMyAdmin importieren willst rate ich Dir folgende Vorgehensweise:

öffne den Editor (notepad.exe), und kopiere diesen Text rein:

Code: Alles auswählen

CREATE TABLE con_guestbook (id INT DEFAULT '0' NOT NULL AUTO_INCREMENT,
name VARCHAR(40) NOT NULL,email VARCHAR(40) NOT NULL,location VARCHAR(40) NOT NULL,
comments TEXT NOT NULL,url VARCHAR(50) NOT NULL,active INT(1) DEFAULT '1' NOT NULL,
client INT(1) DEFAULT '1' NOT NULL,
date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL,PRIMARY KEY (id));
dann speichere das als .sql Datei, und nicht als .txt Datei.
Dann öffne nochmals das phpMyAdmin und importiere diese .sql Datei.
Dann sollte es eigentlich klappen.

Hoffe geholfen zu haben

Gruß

MHL

Verfasst: Di 25. Jan 2005, 09:32
von pagedev
das query ist nun fehelrlos gelaufen, den contenido_db fehler ist jedoch nach wie vor nicht verschwunden.

habe hier die möglichen fehlerquellen aufgelistet:

die letzten Zeilen von cfg_sql.inc:
....
$cfg["tab"]["user_prop"] = $cfg['sql']['sqlprefix']."_user_prop";
$cfg["tab"]["inuse"] = $cfg['sql']['sqlprefix']."_inuse";
$cfg["Tab"]["guestbook"] = "con_guestbook";
$cfgTab_guestbook = "con_guestbook";
?>

den eintrag im contenido_log:

[25-Jan-2005 08:38:57] Invalid SQL: SELECT count(*) AS total FROM WHERE active=1 AND client=1<br><br>
[25-Jan-2005 08:38:57] next_record called with no query pending.
[25-Jan-2005 08:38:57] Invalid SQL: SELECT name, email, url, date, location, comments, id, active FROM WHERE active=1 AND client=1 order by date desc LIMIT 0,2<br><br>
[25-Jan-2005 08:38:57] next_record called with no query pending.

con_guestbook (alle not null):
id int(11) auto increment
name varchar(40)
email varchar(40)
location varchar(40)
comments text
url varchar(40)
active int(1) default 1
client int(1) default 1
date datetime 0000-00-00 00:00:00

der nächste Schritt wäre die Modul-Analyse, bin jedoch nicht wirklich der super-php-crack. Mit anderen Worten - bin ratlos warum das nicht funktioniert...[/b]

Verfasst: Di 25. Jan 2005, 09:48
von pagedev
Noch ein wichtiger Hinweis:

im Vorschau-Fenster des Backends zeigt sich ein leerer Inhalt, d.h. dort wo die Eingabefelder angezeigt werden sollen ist nichts...!

Verfasst: Di 25. Jan 2005, 09:49
von Halchteranerin
Eins nach dem anderen.
1. In Snoopys Posting war der Text fehlerhaft, weil die Forums-Smileys zugeschlagen haben. Ich habe den Text dort korrigiert, indem ich ihn als Code formatiert habe. Hier aber sicherheitshalber nochmal die richtige Version:

Code: Alles auswählen

CREATE TABLE con_guestbook (
   id int(8) DEFAULT '0' NOT NULL auto_increment,
   name varchar(40) NOT NULL,
   email varchar(40) NOT NULL,
   location varchar(40) NOT NULL,
   comments text NOT NULL,
   url varchar(50) NOT NULL,
   active int(1) DEFAULT '1' NOT NULL,
   client int(1) DEFAULT '1' NOT NULL,
   date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
   PRIMARY KEY (id)
); 
2. Womit hast du jetzt die Tabelle angelegt, ich meine, mit welchem Befehl? Mit dem so wie oben? Falls du mehrere Datenbanken haben solltest: bloede Frage, aber hast du die Tabelle in der richtigen Datenbank angelegt?
3. Ich habe das Gaestebuch bei mir auch installiert, es ist aber schon eine Weile her, und deswegen weiss ich es nicht mehr, ob es konfiguriert werden musste. Hast du mal nachgeschaut, ob es konfiguriert werden muss, bzw. falls ja, hast du es auch konfiguriert (den Artikel, der das Modul beinhaltet, bzw. die Kategorie, in der sich der Artikel befindet, je nachdem)?

Offensichtlich ist bei dir das Problem, dass der Tabellenname dem SQL-Query nicht uebergeben wird, und das ist ungueltiges SQL logischerweise.

Verfasst: Di 25. Jan 2005, 10:04
von pagedev
habe die table nach der Anleitung von "mhl" erstellt.
=> kein Fehler, table ist ok (wie oben beschrieben)
=> Layout ist mit javascript-Ergänzung im header erweitert
=> cfg_sql.inc Einträge habe ich gemacht
=> Artikel ist konfiguriert

Das Merkwürdige ist, dass in der Contenido-Vorschau des Gästebucheintrages nichts erscheint. Wenn der Artikel jedoch Online geschalten wird, ist eine Eingabe möglich (von ausserhalb):
=> E-Mail-Benachrichrichtigung ok!
=> Bestätigung erscheint: Danke! Ihr Beitrag wurde eingetragen

Der Beitrag wird jedoch nicht abgespeichert aufgrunds folgenden Fehlers:

Invalid SQL: INSERT into (name, email, location, url, date, comments, active, client) VALUES ('TESTER', 'bla@blu.ch', '193.5.5.34/mail.adasoft.ch', 'homepage', NOW(), 'TESTEINTRAG', '1', 1)

Verfasst: Di 25. Jan 2005, 10:11
von Halchteranerin
noch eine "bloede" Frage, die mir einfaellt. Als du

Code: Alles auswählen

$cfg["Tab"]["guestbook"] = "con_guestbook";
$cfgTab_guestbook = "con_guestbook";
in die Datei eingefuegt hast, hast du auch auf Gross-/Kleinschreibung (speziell das T von Tab in beiden Zeilen) geachtet? Denn im Modul wird das auch grossgeschrieben, und falls das in der Datei klein geschrieben wurde ...

Auch dein letztes Posting zeigt, dass die Tabelle nicht gefunden wird, da muesste es naemlich "insert into con_guestbook (name, email ..." usw. stehen, d.h. der Tabellenname fehlt wieder mal.

Verfasst: Di 25. Jan 2005, 10:20
von pagedev
Ja, die beiden T's sind gross.

Das in diesem query die Tabelle fehlt habe ich auch bemerkt und das query mit dem Tabellennamen ergänzt und im phpMyAdmin ausgeführt.
=> Eintrag problemlos eingefügt!
=> mit select * from con _guestbook Eintrag kontrolliert

Nun ist wohl die Frage, wo das Modul diesen Tabellennamen kreirt? Habe mich noch nicht in die Tiefen des php-codes gewagt...

Verfasst: Di 25. Jan 2005, 10:35
von Halchteranerin
pagedev hat geschrieben:Nun ist wohl die Frage, wo das Modul diesen Tabellennamen kreirt? Habe mich noch nicht in die Tiefen des php-codes gewagt...
Trau dich. ;-) Such einfach nach "insert into" oder nach "select" im Code, dann findest du schon die Stellen.

Verfasst: Di 25. Jan 2005, 10:43
von pagedev
habe die entsprechende Stelle gefunden:

$sql = "INSERT into ".$cfg["Tab"]["guestbook"]." (name, email, location, url, date, comments, active, client) VALUES ('$name', '$email', '$ip/$host', '$url', NOW(), '$comments', '$activ', $client)";

sollte meiner Ansicht nach kein Probleme verursachen...?!