Gästebuch speichert keine Einträge!

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Gästebuch speichert keine Einträge!

Beitrag von pagedev » Mo 24. Jan 2005, 15:21

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....

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 24. Jan 2005, 15:30

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";
*** make your own tools (wishlist :: thx)

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Mo 24. Jan 2005, 15:31

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...

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Mo 24. Jan 2005, 15:47

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...

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Mo 24. Jan 2005, 16:20

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)
);

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 24. Jan 2005, 16:24

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...
*** make your own tools (wishlist :: thx)

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

importieren in datenbank

Beitrag von mhl » Mo 24. Jan 2005, 18:07

@ 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

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Di 25. Jan 2005, 09:32

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]

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Di 25. Jan 2005, 09:48

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...!

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 25. Jan 2005, 09:49

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.

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Di 25. Jan 2005, 10:04

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)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 25. Jan 2005, 10:11

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.

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Di 25. Jan 2005, 10:20

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...

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 25. Jan 2005, 10:35

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.

pagedev
Beiträge: 20
Registriert: Fr 15. Okt 2004, 10:02
Kontaktdaten:

Beitrag von pagedev » Di 25. Jan 2005, 10:43

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...?!

Gesperrt