Zum Inhalt springen

problem mit $GLOBALS['TSFE']->loginUser

Erstellt am 16. April 2008 · Noch keine Antworten

Tags: Frage

Unbekannter Benutzer ·

Hallo,

ich habe auf meiner Site ein Loginsystem installiert (sr_user_fe_register mit newloginbox).
Manchmal habe ich allerdings das Problem, dass man sich einfach nicht einloggen kann.
Eine Analyse der Extension newloginbox ergab, dass dort geprüft wird, ob $GLOBALS['TSFE']->loginUser
true bzw. 1 ist. Ist es nicht...

Nun habe ich geforscht, warum das so ist. Zuerst bin ich auf die Benutzer-Authentifizierung in der Typo3-Klasse
t3lib_userAuth (Datei: class.t3lib_userauth.php)
in der Funktion compareUident() gestoßen. Dort wird der Benutzer korrekt authentifiziert. Die dortige Variable $OK ist true, wenn die Funktion verlassen wird.
Allerdings ist die Variable $GLOBALS['TSFE']->loginUser 0, die Extensions erkennen den Benutzer also als nicht
eingeloggt.

Nun habe ich danach geforscht, wo den dieses $GLOBALS['TSFE']->loginUser gesetzt wird:
Wohl in der Klasse tslib_fe (class.tslib_fe.php, eingebunden über index_fs.php). Ich habe nachverfolgt, dass
die Variable ab bzw. nach dem Aufruf der Funktion fetch_the_id() gesetzt ist (bis dahin konnte ich alles mit Testausgaben nachvollziehen). Nun wollte ich in fetch_the_id() Testausgaben machen, aber sie erscheinen nicht.
Ich gehe davon aus, dass diese Funktion irgendwo überschrieben wird.
(weil: Umbenennen der Funktion fetch_the_id() erzeugt keinen Fehler; Umbenennen des Aufrufes der Funktion erzeugt
aber den Fehler, dass die Funktion z.B. "fetch_the_id_test" nicht nicht vorhanden ist. Benenne ich auch die Funktion
selber auch um in "fetch_the_id_test", so funktioniert wieder alles und sogar meine Testausgaben erscheinen. Ergo: die Funktion muss irgenwo überschrieben werden)

Aber wo wird sie überschrieben?

Weiß jemand Rat, wie ich das herausfinden kann?
Oder weiß jemand, wie ich mein Anfangsproblem lösen kann?

Danke

Ajo