Bug in der setup.php

Diskussion zum Modul Guestbook für ConPresso 4
Antworten
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Bug in der setup.php

Beitrag von Gandalf »

Hallo Matthias,

da hat sich ein kleiner Fehler in der setup.php in Zeile 201 eingeschlichen:

Originalzeile:

Code: Alles auswählen

$query = "SELECT COUNT(*) FROM ".CPO_RUBRIC." WHERE directory='".$moduleDirectory."'; ";
So sollte es lauten:

Code: Alles auswählen

$query = "SELECT COUNT(*) FROM ".CPO_RUBRIC." WHERE directory='".$moduleDirectory."' ";
Sprich das vorletzte Semikolon in der Zeile gehört in der Syntax da nicht hin. Dies verursacht einen SQL Fehler und letztlich wird das Modul nicht installiert.

Gruß Gandalf
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Re: Bug in der setup.php

Beitrag von Matthias V »

Hallo Gandalf
Gandalf hat geschrieben:Sprich das vorletzte Semikolon in der Zeile gehört in der Syntax da nicht hin. Dies verursacht einen SQL Fehler und letztlich wird das Modul nicht installiert.
Da war ich mir nie so sicher, ob da nun ein Semikolon hinkommt oder nicht. Ich weiß auch nicht, warum ich das da hingeschrieben habe. :roll:

Im gesammten CPO-Quelltext steht sowas nicht, aber ich habe gerade sowas beim Suchen in einigen anderen Modulen gefunden. An anderen Stellen meines Gästebuchs habe ich da auch nie ein Semikolon.

Aber du hast schon recht, das gehört da eigentlich nicht hin. Danke.
Zuletzt geändert von Matthias V am 24.07.2006 17:29, insgesamt 1-mal geändert.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Dieser kleine Bug ist beseitigt und auf der Conpresso-Webseite und im Forum wurde die Zip-Datei aktualisiert.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Könnte vielleicht noch jemand klären, warum dieser "Bug" bei niemandem bisher zutage getreten ist und auch die PHP-Doku nur sagt "sollte nicht mit einem Semikolon abgeschlossen werden", es in der Doku aber selbst dutzendfach Beispiele mit Semikolon gibt? Und sogar ganze Kapitel, die sich ausschließlich damit Beschäftigen, was man mit dem Semikolon so anstellen kann:
http://www.php.net/manual/de/security.d ... ection.php ...
Dies verursacht einen SQL Fehler
Ist das der, der so lautet: SQL-error 12745. Oder SQL-error 10234 ?

Besonders witzig finde ich dabei, daß Du, Gandalf, ConPresso überhaupt auf dem System, das jetzt so böse Meldungen ausgibt, installieren konntest, da das ConPresso-Setup massenweise SQL-Queries mit Semikolon am Ende beinhaltet... :lol:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Schade... jetzt war der einzige, der das Problem hat, online... wir werden es wohl nie erfahren...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Markus,

da ich nicht stündlich irgendwelche Module deinstalliere und neu installiere, habe ich mich dennoch durchgerungen dies für das Gästebuch mal zu machen.

Der Fehler lautet:

Code: Alles auswählen

Database error:
Invalid SQL: SELECT COUNT(*) FROM cpo4_rubric WHERE directory='mod_guestbook'; 
You have an error in your SQL syntax near '; ' at line 1 (1064)
Gruß Gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Danke für die Antwort... jetzt bleibt nur noch die Frage, warum Du ConPresso auf diesem System installieren konntest, was theoretisch gar nicht hätte funktionieren dürfen (s.o.)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
CPS
ConPresso-User
Beiträge: 58
Registriert: 01.01.1970 01:00
Hat sich bedankt: 13 Mal
Danksagung erhalten: 1 Mal

Beitrag von CPS »

jetzt bleibt nur noch die Frage, warum Du ConPresso auf diesem System installieren konntest, was theoretisch gar nicht hätte funktionieren dürfen (s.o.)
Vielleicht ein zwischenzeitlicher Versionswechsel bei MySQL (durch den Provider)? Wobei mir nicht bekannt ist, zwischen welchen Versionen sich da ggf. Unterschiede diesbezüglich ergeben haben könnten.
Um das zu prüfen, ggf. nochmal einen Installationsversuch von ConPresso in ein anderes Verzeichnis mit eigener DB machen.
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo CPS,

ich habe ein lokales Testsystem das wie folgt aufgebaut ist:

- Windows2000 / IIS
- PHP 4.3.10
- mysql 3.23.49

und das Produktivsystem:

- Linux / Apache
- PHP 4.3.4
- mysql 4.0.18

Ich habe den Fehler auf dem loakeln Testsystem. Auf dem Produktivsystem ist das Modul noch nicht installiert.



Hallo Markus,

conpresso ließ sich absolut fehlerfrei auf beiden Systemen installieren.

Gruß Gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Selbst mySQL 5.1 hat nichts gegen Semikolons..
http://dev.mysql.com/doc/refman/5.1/en/select.html

Ordnen wir das eben unter "merkwürdige Randerscheinungen bei Benutzung eines Windows-Systems bei der Installation eines auf einem Windows-System entwickelten Moduls, das auf Linux-Servern problemlos läuft" ab... :lol:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Nur mal ein Verdacht... es könnte vielleicht auch gar nicht am Semikolon liegen, sondern am dahinter vergessenen Leerschritt, der natürlich eine ungültige Syntax ist.

Code: Alles auswählen

...directory='".$moduleDirectory."'; ";
also der Leerschritt zwischen ; und ", den Gandalf zwar dringelassen hat, der aber ohne das Semikolon nicht als eigenes Statement gewertet wird und somit keinen Fehler produziert...

Bei genauem Studium der jetzt geposteten Fehlermeldung kann man das erkennen.

Also Leute: "Geht nicht" oder "es kommt eine Fehlermeldung" ist nicht genug! Immer die Fehlermeldung selbst posten! 10 Augen sehen mehr als zwei!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Der Vollständigkeit halber:

Da ich auch nicht andauernd Module installiere und deinstalliere und es bisher nicht zur aktuellen Version von Matthias geschafft hatte (mein letzter Stand war Beta3) hatte ich es erst nachdem hier Fragen aufkamen erneut installiert. Da hatte Matthias das Semikolon aber schon entfernt.

Ich habe es jetzt nochmal installiert und bewußt das Semikolon wieder eingesetzt. Dann erhalte ich auch den obenstehenden Fehler. Gandalf ist also nicht der einzige, bei dem das passiert, nur eben vermutlich der einzige, der bisher das Modul in dieser Version installiert hat.

Ich habe dann den oben beschriebenen Leerschritt entfernt, das Semikolon aber dringelassen und erhalte keine Fehlermeldungen mehr.
Das deckt sich nun wieder mit dem PHP- und mySQL-Manual.

Hätte mich doch auch sehr gewundert, wenn etwas so SQL-typisches wie das Semikolon ausgerechnet bei einem SQL-Server als Fehler eingestuft würde... :wink:

Sorry, Gandalf, wenn ich da so vehement nachgehakt habe, aber eine Aussage wie "das [...] Semikolon in der Zeile gehört in der Syntax da nicht hin" machte mich doch sehr nervös... :oops: :lol:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten