[TYPO3-UG Freiburg] page reload with javascript after login by script

Heiko Hänsge mailinglisten at wild-wild-web.de
Thu Feb 4 16:06:36 CET 2010


Hallo,

wieder mal was knuffigiges zum Feierabend...

Ich möchte einen Frontend-User über ein einzeiliges Formular (nur 
Benutzername) per Script einloggen und den Status auch ausgeben.
Dazu muss nach Erzeugen der Login-Session die Webseite nochmals neu 
geladen werden. Aber das klappt momentan noch nicht mit Safari.
Ist eigentlich eher ein Javascript-Problem als ein Typo3-Problem...

Im Script steht u.a. gut kommentiert:

function main ($content, $conf) {
#...
        // wenn Benutzer als eingeloggt erkannt wird, Meldung machen:
        if ($GLOBALS['TSFE']->loginUser) return 'Sie sind eingeloggt';

        // wenn Login-Formular abgesendet wurde, Login-Session starten:
        if (isset($_POST['logininput'])){
            $logininput = $_POST['logininput'];

            // per POST übermittelte $logininput-Variable wird überprüft:
            if ( $logininput=='XYZ' ) {
                // Login-Daten einlesen
                $loginData=array(
                     'uname' =>  $conf['userName'], //username
                     'uident'=> $conf['password'], //password
                     'status' =>'login'
                );

                // Frontend-Benutzer einloggen / Login-Session
                $this->login($loginData);

                // Damit der Browser das merkt, muss die Seite neu 
geladen werden werden
                // bei folgender Zeile schnallt's der Safari nicht :-(
                return '<script type="text/javascript">window.location = 
window.location.href;</script>';
                //if($this->login($loginData)) 
header('Location:'.$_SERVER['REQUEST_URI']);
                // bei folgender Zeile klappt's nicht, weil RealURL 
eingeschaltet ist :-(
                //return '<script type="text/javascript">if 
(location.href.indexOf(\'reload\')==-1) 
location.replace(location.href+\'&reload\');</script>';
            }
            $output .=  '<p class="error">'.$conf['errorMessage'].'</p>';
         }
#...
}

Wie bring ich nun dem Safari bei, die Seite nochmals neu zu laden wie 
die anderen Browser? Apple-Fans vorgetreten, Marsch Marsch! ;-)

Viele Grüße
Heiko



More information about the TYPO3-UG-Freiburg mailing list