Page 1 of 2

Wellrad mit neuster CMSimple Version

Posted: Sun 23. Apr 2017, 10:14
by Hixi
Hallo

Beim Testen eines unserer neuen Projekte haben wir festgestellt, dass Wellrad mit der aktuellen Version von CMSimple ein Problem hat. Man kann zwar Produkte bestellen, wenn man dann aber den Warenkorb aufruft, bekommt man die folgende Fehlermeldung:

Fatal error: WRS_Frontend_Controller::collectCartItems() [<a href='http://php.net/manual/en/wrs-frontend-c ... ems.php</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "WRS_Order" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/xncoco/www/cocoschuettler.ch/plugins/wellrad/classes/app/wrs_frontend_controller.php on line 138

Woran kann das liegen?

Vielen Dank fürs Klären und beste Grüsse aus der Schweiz

Beat + Susanne

Re: Wellrad mit neuster CMSimple Version

Posted: Sun 23. Apr 2017, 11:20
by Gert
Hallo,

zum Wellrad kann ich nix sagen, aber wenn das Problem mit CMSimple 4.7.1 auftritt, dann muss man sich fragen: Was ist neu?

Wirklich neu ist die CSRF-Protection, die solltet Ihr mal abschalten (CMS Konfiguration unter "Use"), vielleicht hat es sich damit schon erledigt,

Gert

=========================================

PS: Für Martin wäre es bestimmt hilfreich zu wissen, ob die CSRF Protection die Ursache ist.

Re: Wellrad mit neuster CMSimple Version

Posted: Sun 23. Apr 2017, 19:11
by Hixi
Hallo Gert und Martin

Vielen Dank für den Hinweis. Das haben wir versucht, hat leider nix gebracht.

Sonnige Grüsse aus der Schweiz

Beat + Susanne

Re: Wellrad mit neuster CMSimple Version

Posted: Sun 23. Apr 2017, 19:31
by Gert
Mit welcher CMSimple Version hat es denn noch funktioniert? Kann es an der neuen Splitmethode liegen?

Gert

Re: Wellrad mit neuster CMSimple Version

Posted: Sun 23. Apr 2017, 19:49
by Hixi
Hallo Gert,

Wir haben auf folgenden Seiten getestet:

www.cocoschuettler.ch: aktuellste Version 4.7.1 --> Fehlermeldung gemäss erstem Post.
www.mirasol.ch/mirasol: aktuellste Version 4.7.1 --> blank
www.hunterverein.com: V4.63 --> es geht gar nichts, beim Aufruf des Warenkorbes wird die Startseite aufgerufen.

Hoffentlich hilft das bei der Fehlersuche.

Beste Grüsse

Beat + Susanne

Re: Wellrad mit neuster CMSimple Version

Posted: Sun 23. Apr 2017, 20:05
by Gert
Hallo ihr Zwei,

jetzt sehe ich schon etwas klarer, was aber nicht bedeutet, dass wir einer Lösung näher wären.
Hixi wrote: http://www.cocoschuettler.ch: aktuellste Version 4.7.1 --> Fehlermeldung gemäss erstem Post.
http://www.mirasol.ch/mirasol: aktuellste Version 4.7.1 --> blank
Da muss es also andere Unterschiede geben, vermutlich php Version oder php Konfiguration, CMSimple Version ist ja die gleiche.
Hixi wrote: http://www.hunterverein.com: V4.63 --> es geht gar nichts, beim Aufruf des Warenkorbes wird die Startseite aufgerufen.
Auch das spricht gegen die CMSimple Version als Ursache.

Euer 1. Post klang ja so, also ob es mit CMSimple 4.7 (oder einer älteren Version) noch funktioniert hätte, und nach einem Update auf CMSimple 4.7.1 nicht mehr:
Hixi wrote:... haben wir festgestellt, dass Wellrad mit der aktuellen Version von CMSimple ein Problem hat.
Da muss jetzt also Martin ran, Ihr könnt ja schonmal die jeweilige php Version für alle 3 installationen ermitteln,

einen schönen Sonntag Abend noch - Gert

Re: Wellrad mit neuster CMSimple Version

Posted: Mon 24. Apr 2017, 10:43
by Hixi
Hallo Gert

PHP-Versionen:
cocoschuettler.ch: 5.63
mirasol.ch/mirasol: 5.63
canny.ch (ebenfalls weisser Bildschirm, anschliessend alles blockiert): 5.63
hunterverein: PHP-Version unbekannt, da nicht von uns gehostet.

Vielen Dank für die Unterstützung!

Beste Grüsse aus der sonnigen Schweiz

Beat + Susanne

Re: Wellrad mit neuster CMSimple Version

Posted: Mon 24. Apr 2017, 20:30
by Martin
Hallo Beat, Susanne und Gert,

ich glaube, da haben wir es mit verschiedenen Problemen zu tun. Eins hängt wirklich mit der neuen CMSimple-Version zusammen. Lokalisieren kann ich die Stelle, die bei den 4.7.1-Sites zum Absturz führt. Repariert werden muss das aber im Core – und da müsste man, hauptsächlich Gert, überlegen, an welcher Stelle man das am besten erledigt.

Das Problem ist, dass 4.7.1 die Session startet, bevor die Plugins die von ihnen benötigten Klassen laden konnten. In diesem Fall geht es um den "Warenkorb", der als ein Objekt der Klasse WRS_Order in der Session gespeichert wird. Damit das funktioniert, PHP wissen kann, was eine WRS_Order überhaupt sein soll und tun kann, müsste die Klassendefinition geladen sein, bevor die Session gestartet wird. Zu diesem Zweck konnten Plugins in der Datei plugin-name/classes/required_classes.php die Dinge laden, die sie brauchen. Jetzt kommt diese Datei aber erst zum Zug, nachdem die Session – in login.php – gestartet wurde.

Also: Der Plugin-Loader (plugins/index.php) muss eingebunden werden, bevor die Session gestartet wird. Resp. die Session darf erst gestartet werden, nachdem die required_classes-Dateien über plugins/index.php, Z. 256, eingebunden wurden.

Das Problem beim hunterverein ist sicherlich ein anderes. Besteht das denn überhaupt noch? Bei meinem Besuch gerade sah alles gut aus.

Viele Grüße

Martin

Re: Wellrad mit neuster CMSimple Version

Posted: Mon 24. Apr 2017, 22:34
by Gert
Hallo Martin, vielen Dank.

Hallo Beat und Susanne,

versucht doch bitte mal folgendes:

1. login.php Z43 auskommentieren:

Code: Select all

// if(!isset($_SESSION)){session_start();}       
2. login.php ca. Z124++ Zeile einfügen:

Code: Select all

if ($login && !$adm) 
{
    if ($xh_hasher->CheckPassword($passwd, $cf['security']['password']))
    {
        if(!isset($_SESSION)){session_start();} // die neue Zeile
        $_SESSION['csrf_token'] = uniqid('', true);
        ...
3. login.php ca. Z143++ Zeile einfügen:

Code: Select all

else if ($logout && $adm) 
{
    if(!isset($_SESSION)){session_start();}
    unset($_SESSION['csrf_token']); // die neue Zeile
    ...
Dann muss noch die Datei ./plugins/pluginloader/page_data/index.php erweitert werden, Z98:

Code: Select all

    if ($s > -1 && isset($_POST['save_page_data'])) {
        if(!isset($_SESSION)){session_start();}  // die neue Zeile
        csrfProtection();
        ...
Ich kann Euch die beiden Dateien morgen auch zippen und zuschicken,

Gert

Re: Wellrad mit neuster CMSimple Version

Posted: Tue 25. Apr 2017, 06:25
by Hixi
Guten Morgen Gert

Vielen Dank für die Hinweise. Wir haben noch bei Hans nachgefragt, er betreut die Hunterverein-Page (V4.63). Er hat folgendes berichtet:
Das Verhalten war wie geschildert - beim Warenkorbaufruf erschien die Hautpseite.
Dann habe ich mich als Administratior eingeloggt und das selbe Spiel nochmals probiert - so hats einwandfrei funktioniert - dananch ausgeloggt, alle Cockies gelöscht und nochmals als "Nobody" probiert - ab jetzt klappts wieder reibungslos...
Ja, wir wären sehr froh, wenn du uns die Dateien schicken könntest. Herzlichen Dank!

Beste Grüsse

Beat + Susanne