Recent Topics

Kommentarvorschau - Fehler bei Objektdeserialisierung[fixed]

Started by on Mar 16, 2008 – Contents updated: Mar 16, 2008

Mar 16, 2008 18:14    

Hallo,

ich betreibe b2evo auf einem [url=http://pytal.de]Freehoster[/url] und es funktioniert auch eigentlich alles wunderbar - bis auf die Kommentarvorschau.
Statt der Vorschau bekomme ich zwei PHP-Fehler:

Notice: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Comment" 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 /srv/www/httpd/phost/a/net/pytalhost/ax86/web/skins/_item_comment_form.inc.php on line 38


und als Folgefehler dann:

Fatal error: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Comment" 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 /srv/www/httpd/phost/a/net/pytalhost/ax86/web/skins/_item_comment_form.inc.php on line 114

Es wird versucht, auf ein unvollständiges Objekt zuzugreifen. Lokal gibt es keinen Fehler, aber nachdem ich mir den Code angeschaut habe, vermute ich, dass - aus welchem Grund auch immer - die Methode get() der Klasse Session kein vollständiges Objekt der Klasse Comment zurückgibt. Die Frage wäre jetzt, warum das passiert, und warum nur auf diesem Host. Der Titel sagt ja schon etwas über meine Vermutung aus. ;)

Links:
[url=http://ax86.pytalhost.net/]Seite[/url], auf der das Problem auftritt
[url=http://ax86.pytalhost.net/_tmp/info.php]phpinfo()-Ausgabe[/url] auf dem Webspace

b2evo-Version ist 2.4.0-rc2.

Kann mir da jemand helfen?

Grüße,

Tblue

Mar 17, 2008 01:39

Buggy Zend Accelerator, eventuell? (s. phpinfo(), ob der installiert ist und versuche es einmal ohne).

Mar 17, 2008 01:44

Danke für deine Antwort. Nein, der Zend Accelerator ist nicht installiert. Wenn er das wäre, könnte ich ihn auch nicht deaktivieren (Freehoster, ich habe nur Zugriff auf einige wenige php.ini-Einstellungen.).

Mar 17, 2008 02:14

Sorry, hattest ja oben schon Links angegeben.
Schau mal bitte in die Datei blogs/inc/session/model/_session.class.php.
1. Entferne mal das "@" vor dem "unserialize($row->sess_data)". Was ergibt das für einen Fehler?
2. ini_set ist auf Deinem Server verboten, deshalb kann keine unserialize_callback_func registriert werden, aber es sollten dann dennoch alle Klassen geladen werden. Bitte schreibe mal ein "var_dump($old_callback)" unter:
$old_callback = ini_set( 'unserialize_callback_func', 'session_unserialize_callback' );
Was ist die Ausgabe? Evtl. etwas anderes als "false"?

Mar 17, 2008 12:42

1. Gibt keinen Fehler.
2. Das scheint das Problem zu sein. Laut var_dump($old_callback) enthält die Variable nämlich NULL, so dass die Klassen gar nicht geladen werden, richtig? Jetzt könnte man natürlich $old_callback immer false zuweisen, aber ich denke, das wäre keine gute Lösung.

Mar 18, 2008 01:19

Probier mal bitte folgenden Patch:
- $old_callback === false )
+ $old_callback === false || $old_callback === null /* disabled */ )

..also einfach noch eine Überprüfung auf null hinzufügen.

Mar 18, 2008 01:25

Danke, werde ich probieren. :)

//edit: Wunderbar, funktioniert. Danke.

Mar 18, 2008 01:43

Ha, wunderbar, kann ich damit rechnen, dass das dann in das nächste Update einfließt? Dann muss ich nämlich den betreffenden Artikel im Support-Wiki meines Freehosters nur für 2.4.1 und früher als gültig kennzeichnen.
Ach ja: b2evo ist wirklich super, toller Code (ja, ich habe mir mehr angesehen, als das eine Stück da ;)), tolles System etc. :)

Mar 18, 2008 01:59

Vielen Dank für die Blumen.. :)
Der Fix wird es zumindest in die 2.5 schaffen (sofern die nexte Beta denn auch so heisst) und evtl. auch 2.4.2, je nachdem, ob François ihn "kopiert".

Mar 18, 2008 02:18

Gut. :) Ich weiß ja nun, wo ich fixen muss.

Oct 30, 2008 04:22

Alles, was Sie tun müssen, ist eine einfache Methode, finden Fix wie der Fehler oder beginnt in der oberen Ad analysieren alle den Code und die Installation oder vielleicht Kommentar Code etwas nicht in Ordnung und jetzt auf der Code das ist nur meine eigene Beobachtung zu Ihrem Thema.

_____________________
[url=http://www.bestegutscheine.de]Gute Gemeinschft[/url]


Form is loading...

Build your own website! – This forum is powered by b2evolution CMS, a complete engine for your website.