[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