Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 04. Mai 2015 13:46

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

3 Haselnüsse für Aschenbrödel ...

So langsam frage ich mich, ob da überhaupt noch jemand ist, der sich anschaut, was da fabriziert wird

/install/upgrades/upgrade.35.to.36.php

$flds = "
        sig C(80) KEY NOT NULL,
        name C(80) NUT NULL,
        module C(160) NOT NULL,
        type C(40) NOT NULL,
        callback C(255) NOT NULL,
        available I,
        cachable I1
";

Offline

#2 04. Mai 2015 21:52

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: 3 Haselnüsse für Aschenbrödel ...

Selbst, wenn man es selbst mal übersieht (kann ja mal vorkommen), sagt mir aber schon der popeligste Syntax-Checker, dass das falsch ist.

Es muss natürlich NOT heißen, und nicht NUT (englisch für Nuss wink).

Von diesem Fehler betroffen ist in der Tabelle xxx_module_smarty_plugins die Spalte "name". Um den Fehler zu beheben, geht in das MySQL-Administrationsprogramm eurer Wahl und gebt dort in der Konsole folgendes ein

ALTER TABLE `cms_module_smarty_plugins` CHANGE COLUMN `name` `name` VARCHAR(80) NOT NULL COLLATE utf8_general_ci

wobei cms_ natürlich eurem Tabellen-Präfix entsprechen muss wink.

Offline

#3 05. Mai 2015 22:35

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: 3 Haselnüsse für Aschenbrödel ...

Oh Gott!
Das geht ja zurück bis zur ersten 1.11 yikes

Jede 1.10.3 die ich auf 1.11 upgedated habe ist betroffen...
Ich habe keine Ahnung mehr wo und wann das war, ob es eine Neuinstallation oder ein Update war.

Wie wirkt sich das denn aus?

Offline

#4 05. Mai 2015 08:12

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: 3 Haselnüsse für Aschenbrödel ...

Wie wirkt sich das denn aus?

Unterm Strich?
Garnicht.
Schlimmstenfalls könnte jemand durch einen Fehler im PHP-Code eines Moduls ein Plugin ohne Namen registrieren.

ABER: Das kann er auch so schon.

Denn der weitaus größere Fehler besteht bei CMSms darin, dass "NOT NULL" "falsch" ist. Bei MySQL ist das richtig, aber beim Einsatz von ADOdb heißt das "NOTNULL". Ohne Leerzeichen. Ergo alle Datenbankfelder, die mit "NOT NULL" erstellt wurden, haben bei CMSms den Standardwert den sie eigentlich nie haben dürfen.

Nimmt sich also nicht viel, ob man nun mit Nüssen oder Noten hantiert. Wenn schon der Syntax falsch ist, kann's so oder so nicht klappen.

Aber wie gesagt, auf die Lauffähgikeit des CMS hat das keinen Einfluss. Ist einfach nur nicht optimal programmiert.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 05. Mai 2015 08:17

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: 3 Haselnüsse für Aschenbrödel ...

Klenkes schrieb:

Wie wirkt sich das denn aus?

Zum Glück sollten daraus (zumindest an dieser Stelle) keine größeren Probleme resultieren.

http://www.twiedmann.de/sqlbackstube/mysql_not_null_columns schrieb:

Für gewöhnlich definiert man wichtige Tabellenspalten und Pflichtfelder mit den NOT NULL Constraint, um sicherzustellen, dass die Spalte immer einen gültigen Wert enthalten muss.

Jedoch habe ich für einen Fehler dieser Art, so simpel er noch sein mag, keinerlei Verständnis.

Zum einen ist die Upgrade-Datei nur 2 kB groß, so dass es kein Problem sein sollte, den Überblick zu behalten.

Zum anderen ist nach meinem Verständnis die Datenbank quasi das Herz von CMSMS. Ergo sind Operationen an der Datenbank gleichzusetzen mit Operationen am offenen Herzen. An dieser Stelle erwarte ich daher alleräußerste Sorgfalt!!

Natürlich kann ein Patient weiterleben, wenn der Chirurg die Schere in dessen Bauch vergisst. Man weiß aber grundsätzlich nie, welche Probleme daraus später erwachsen werden.

Wie gesagt, beim Code Reviewing hab ich Dinge gesehen, nach denen ich mich wundere, dass CMSMS so funktioniert, wie es das tut. Da werden im Backend System-Variablen mehrfach geladen, der Login doppelt geprüft und, und, und ... alles Dinge, bei denen man mal ein Auge zudrücken kann (einschließlich der Hühneraugen wink), auch wenn mir dabei immer wieder der Klassiker "... denn sie wissen nicht, was sie tun" einfällt.

Aber bei der DB hört der Spaß für mich auf. Schließlich gibt es genügend Unternehmer, die mit CMSMS Geld verdienen wollen und darauf angewiesen sind - von daher sollte CMSMS eine funktionssichere Plattform bereitstellen anstatt sie im Regen stehen zu lassen.

Offline

#6 05. Mai 2015 21:56

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: 3 Haselnüsse für Aschenbrödel ...

NaN schrieb:

Bei MySQL ist das richtig,

Wobei da wohl auch bei MySQL ohne den entsprechenden Modus nicht alles ganz rund läuft  roll

http://www.peterkropff.de/site/mysql/strict_modus.htm

Offline