You are not logged in.

1

Friday, July 3rd 2009, 1:04pm

Fehlermeldung ohne ersichtlichen Grund

Beim Aufrufen meines Boards bekomme ich folgende Fehlermeldung:

Quoted

Fatal error: PHP warning in file /users/rla/www/wcf/lib/system/event/EventHandler.class.php (73): get_class() expects parameter 1 to be object, string given
Information:
error message: PHP warning in file /users/rla/www/wcf/lib/system/event/EventHandler.class.php (73): get_class() expects parameter 1 to be object, string given
error code: 0
file: /users/rla/www/wcf/lib/system/WCF.class.php (255)
php version: 5.3.0
wcf version: 1.0.10 (Horizon)
date: Fri, 03 Jul 2009 10:52:49 +0000
request: /acp/
referer:
Stacktrace:
#0 [internal function]: WCF::handleError(2, 'get_class() exp...', '/users/rla/www/...', 73, Array)
#1 /users/rla/www/wcf/lib/system/event/EventHandler.class.php(73): get_class('UserAuth')
#2 /users/rla/www/wcf/lib/system/event/EventHandler.class.php(142): EventHandler::executeInheritedActions('UserAuth', 'loadInstance', 'UserAuth', 'loadInstance@Us...')
#3 /users/rla/www/wcf/lib/system/auth/UserAuth.class.php(28): EventHandler::fireAction('UserAuth', 'loadInstance')
#4 /users/rla/www/wcf/lib/system/session/SessionFactory.class.php(115): UserAuth::getInstance()
#5 /users/rla/www/wcf/lib/system/session/SessionFactory.class.php(71): SessionFactory->create()
#6 /users/rla/www/wcf/lib/system/WCFACP.class.php(58): SessionFactory->get()
#7 /users/rla/www/wcf/lib/system/WCFACP.class.php(30): WCFACP->initSession()
#8 /users/rla/www/acp/global.php(21): WCFACP->__construct()
#9 /users/rla/www/acp/index.php(7): require_once('/users/rla/www/...')
#10 {main}


Da niemand in den letzten tagen dort irgendetwas verändert hat, weiß ich nicht woran das liegt, und hoffe auf hilfe
Dank im Voraus

Virsacer

Professional

  • "Virsacer" is male

Posts: 785

Occupation: Informatik Student

  • Send private message

2

Friday, July 3rd 2009, 2:09pm

Es wurde was verändert:
Der Hoster hat PHP 5.3 installiert (das ist nämlich erst vor 4 Tagen erschienen)
Anscheinend muss da das WBB noch leicht angepasst werden...

Eigentlich ist das sehr vorbildlich vom Hoster!
Andere wollen ja nichtmal von PHP 4 weg...

Bei welchem Hoster bist du denn?
Den muss ich mir nämlich mal für die Zukunft merken :D
Hello, IT. Have you tried turning it off and on again?

3

Friday, July 3rd 2009, 2:15pm

Ist bei Bplaced...
Nur löst das nicht mein Problem, was kann man tun ist die Frage?
Und zudem taucht das problem bei allen anderen Foren die ich bei BPlaced laufen hab nicht auf

4

Friday, July 3rd 2009, 2:30pm

Quoted

Meine Seite zeigt aber nun trotzdem Fehler, die vorher noch nicht da waren, warum ist das so?

Das hat damit zu tun, dass viele Systeme wie CMS oder Foren selbst ihr Error-Level bestimmen. Dies ist bei bplaced natürlich möglich und meist auch erwünscht. Da aber nun PHP 5.3 recht neu ist, sind solche deprecated-Fehler für viele Anweisungen noch unbekannt.

Daher bestehen hier nun 2 Möglichkeiten:

- entweder, man sucht im Quelltext nach der error_reporting()-Funktion, diese könnte Beispielsweise
;">error_reporting(E_ALL & ~E_NOTICE); lauten - dies müsste dann dadurch ausgetauscht werden, dass & ~E_DEPRECATED angehängt wird, also müsste die Funktion dann lauten:;">error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

- man könnte auch z.B. wenn die Zeile bekannt ist, die den Fehler auslöst, ein @ davor setzen. Dies bewirkt, dass auftretende Fehler unterdrückt werden, Beispiel:

magic_quotes_gpc(0);

abändern in

@magic_quotes_gpc(0);
Mit freundlichen Grüßen,
Christopher Walz

Meine kostenlosen Plugins

wollikai

Intermediate

  • "wollikai" is male

Posts: 343

Location: 47798

  • Send private message

5

Friday, July 3rd 2009, 2:30pm

Scheint aber noch nicht auf allen Servern da umgestellt zu sein. Ich habe noch 5.2.8 ausgewiesen.
Es gibt für alles eine Lösung, auch wenn einem die Antwort dazu nicht immer gefällt ;)

6

Friday, July 3rd 2009, 2:47pm

nun knifferkniffer, wenn ich beim wbb2 im Quellcode rumschreib, dann dürfte das nur dazu führen, das gar nix mehr angezeigt wird, nicht aber dazu das der Fehler behoben wird^^
Also bitte eine verständliche anleitung

7

Friday, July 3rd 2009, 2:58pm

Sorry kenn mich da auch nicht aus, hab das ausm BPlaced Forum kopiert.

http://forum.bplaced.net/viewtopic.php?f=5&t=10190

Kansch dir ja ma durchgucken.

hf^^
Mit freundlichen Grüßen,
Christopher Walz

Meine kostenlosen Plugins

8

Friday, July 3rd 2009, 2:59pm

Hab ich durchgelesen... hab die nich ganz die hälfte verstanden... hab das mit dem @ davorsetzen probiert - bringt nix

dtdesign

WoltLab Developer

  • "dtdesign" is male

Posts: 3,804

Location: Berlin

  • Send private message

9

Saturday, July 4th 2009, 1:34pm

Blödsinn, ihr unterdrückt nur die Anzeige des Fehlers, der Fehler bleibt trotzdem bestehen. Das Forum ist so nicht oder nahezu nicht nutzbar, da es sich um einen schweren Fehler in der EventListener-Klasse des WCF handelt.
Alexander Ebert
Developer WoltLab® GmbH


10

Saturday, July 4th 2009, 1:50pm

Also
dann kannst du mir ja sicher sagen wo da der fehler liegt, denn in der Klasse hab ich garantiert nix verändert

dtdesign

WoltLab Developer

  • "dtdesign" is male

Posts: 3,804

Location: Berlin

  • Send private message

11

Saturday, July 4th 2009, 2:02pm

Nö, denn es macht keinen Sinn, das dort ein Fehler produziert wird. Bevor get_class() aufgerufen wird, erfolgt eine Überprüfung ob $eventObj überhaupt ein Objekt ist (und damit Instanz einer Klasse).

Den Fehler mittels error_reporting nicht mehr anzeigen zu lassen ist mit so die schlechteste "Lösung" die vorstellbar ist. Das ist ungefähr so, als würdest du dir bei einem Sprung von einem Hochhaus ohne Sicherungsmaßnahmen einreden, dass dir nichts passieren kann.
Alexander Ebert
Developer WoltLab® GmbH


12

Saturday, July 4th 2009, 2:05pm

Deswegen bitte ich ja darum mir zu sagen warum das im quellcode als objekt deklarierte $eventObj nicht als Objekt anerkannt wird, und wie ich das verändern kann, und warum das erst seit der einführung von php 5.3 auftritt

GameR

Master

  • "GameR" is male

Posts: 2,211

Location: Berlin

Occupation: Student der Geschichte und Bibliothekswissenschaften

  • Send private message

13

Saturday, July 4th 2009, 2:12pm

@dtdesign, ich wäre die dankbar, wenn du schon sagst, das ein Fehler im WCF vorliegt, dieses erst mal dann zu durchforsten.
Die Verwendung von get_class ist im WCF so, wie es sein soll: if (is_oibject($eventObj) $ className = get_class($eventObj);
Ich konnte also aktuell dort keinen Fehler finden.

Was sein kann ist aber, dass eine alte WCF-Version da läuft, und es deswegen nicht geht!

Ich schau nacher das WCF1.0 noch an wie es da aussieht, aber es wäre ungewöhnlich. Kannst du es mal bitte mit einem reihnen WBBLite 2 testen, ohne Plugins und ko?
Komödie ist Tragödie plus Zeit.
- Woody Allen

14

Saturday, July 4th 2009, 2:15pm

Und wie kann man das ganze jetzt wieder richten?
Muss ich das Forum dazu auf einen anderen Server umsiedeln, oder gibt es einen einfacheren weg?

dtdesign

WoltLab Developer

  • "dtdesign" is male

Posts: 3,804

Location: Berlin

  • Send private message

15

Saturday, July 4th 2009, 4:41pm

@dtdesign, ich wäre die dankbar, wenn du schon sagst, das ein Fehler im WCF vorliegt, dieses erst mal dann zu durchforsten.

Ich habe mir die entsprechenden Zeilen angeschaut und dort finde ich nur ordnungsgemäße Prüfungen. Ich habe gerade noch einmal nachgeschaut, meine lokale Testinstallation verwendet bereits das WCF 1.0.11, ich kann mich aber nicht daran erinnern, es einem Update unterzogen zu haben *g*

Der Verweis auf einen Fehler des WCF war die - meiner Ansicht nach - sinnvollste Aussage, da sonst alle brav die Anzeige von Fehlern unterdrücken und schon haben wir Tausende von mysteriösen Fehlern, die nur daraus resultieren das sie eben nicht angezeigt werden. Nenne es von mir aus Schadensbegrenzung ;)
Alexander Ebert
Developer WoltLab® GmbH


GameR

Master

  • "GameR" is male

Posts: 2,211

Location: Berlin

Occupation: Student der Geschichte und Bibliothekswissenschaften

  • Send private message

16

Sunday, July 5th 2009, 8:06am

Mhhh, einzige wäre, dass Forum neu zu installieren und zu importieren.
Ich werde auch bescheid geben, dass das WBBLite 2 noch die aktuelleste WCF-Version bekommt.
Komödie ist Tragödie plus Zeit.
- Woody Allen

BigPaddy

Beginner

  • "BigPaddy" is male

Posts: 25

Location: Hamburg

  • Send private message

17

Sunday, July 5th 2009, 11:41am

Hallo



Ich habe exakt das selbe Problem wie DrakenKorin.

Auch ich komme nicht mehr auf mein Forum rauf.



Also wenn ich das richtig verstanden habe, bleibt mir jetzt nur noch die Möglichkeit, ein neues Forum bei einem anderen Hoster aufzuspielen und dann das alte Forum zu importieren. Aber geht das mit dem importieren überhaupt, wenn da solch ein fehler mit dem EventListener besteht?



Gruß Paddy

18

Thursday, July 9th 2009, 4:48am

hi,

ich bin miro, der Chef/Admin von bplaced.

Nun, in der Tat sieht es so aus, als ob in Eventhandler.class.php ein Übergebener Wert nur zu einem Objekt gecastet werden muss. Auf den ersten Blick sehe ich hier kein Problem damit, konkret geht es um diese Zeile

Quoted

Fatal error: PHP warning in file /users/k12/www/wbb2/wcf/lib/system/event/EventHandler.class.php (73): get_class() expects parameter 1 to be object, string given

if ((get_class($eventObj) == $parentClassName || is_subclass_of($eventObj, $parentClassName)) && isset($actions[$eventName]) && count($actions[$eventName]) > 0) {



Hierbei sollte es reichen, bei get_class einfach nur den Wert durch folgendes auszutauschen:


Source code

1
if ((get_class((Object)$eventObj) .... 



Was meinen die Entwickler zu dieser Änderung? Sie soll eigentlich nur temporär eine Lösung darstellen, bis ein offizieller Patch da ist.
Dies wird hiermit auf bplaced automatisch ausgeführt - auf allen Servern, die aktuell auf PHP 5.3 migrieren.
Sollte jemand gerade ein neues WBB installiert haben, das diese oder eine offizielle entsprechende Änderung noch nicht enthält, so reicht ein kurzer hinweis im bplaced-Forum in einem entsprechenden Thread, ich lasse die Änderung dann manuell für dieses eine Konto gerne wiederholen.


ciao, miro
bplaced.net

Harald Szekely

WoltLab Designer

  • "Harald Szekely" is male

Posts: 12,251

Location: Berlin-Neukölln

Occupation: WoltLab Designer

  • Send private message

19

Friday, July 10th 2009, 1:20am

hi,

ich bin miro, der Chef/Admin von bplaced.

Hallo und herzlich willkommen bei uns im Forum! Nett, dass du selbst vorbeischaust! :thumbup:

Was meinen die Entwickler zu dieser Änderung?

In dieses Forum schauen die Entwickler so gut wie nie rein, weil wir nur der Vollversion WBB 3 Support bieten und nur in den dafür vorgesehenen Bereichen auch posten. Wir sind eine kleine Firma, daher fehlt neben dem Entwickeln die Zeit, auch noch in allen Forenbereichen mitzulesen oder gar zu schreiben, so müssen wir uns auf die Bereiche beschränken, die sich um die kostenpflichtige Software drehen.

Wenn du mit den Entwicklern Kontakt wegen dieser Sache aufnehmen möchtest, dann wende dich bitte an die E-Mailadresse woltlab@woltab.com, der Zuständige wird sich dann bei dir melden! Wir sind immer froh, wenn wir konstruktive Rückmeldungen erhalten und natürlich noch glücklicher, wenn unsere Software auf möglichst vielen Servern gut läuft. :D

Natürlich werde ich auch selbst auf dieses Thema hinweisen …

Danke nochmal, dass du so nett warst selbst hier reinzuschauen. :)
"Viribus Unitis"

Harald Székely
Designer

20

Friday, July 10th 2009, 3:29am

hi,


klar, ich will ja auch zufriedene Benutzer, die nicht mein Forum mit Fehlermeldungen zuposten.
Ich meine schon, dass dies in einer nächsten Version korrigiert wird, meine "Lösung" ist ja nur ein Workaround.

Generell füge ich diese Modifikation ja auf allen Servern automatisch durch, daher hielt sich das nur in Grenzen bzw. war anfangs nur so Aufsehen erregend, da mir der Fehler bis dahin eher unbekannt war. Erst als ich sah, dass da viele Betroffene sind und dass einige Testseiten mit diesem Problem auftraten, habe ich mich eben zu dieser Änderung entschlossen. Ein Patch wäre natürlich sehr erfreulich.



ciao,
miro