Frontend-Login und Cookieverweigerer
Verfasst: Mi 9. Feb 2005, 19:08
Bei einem Kunden war es notwendig, einen Frontend-Login zu implementieren. Dabei stört mich (und vor allem den Kunden), dass die Besucher der Seite nicht darauf hingewiesen werden, dass sie Cookies deaktiviert haben, wenn sie versuchen sich einloggen.
Vielmehr ist es so, dass der Besucher direkt nach dem Abschicken des Login-Formulars als eingeloggt gilt, d.h. $auth->auth["uid"] ist gesetzt. Surft dieser nun weiter, wird allerdings auf den Sessioncookie zurückgegriffen, der ja gar nicht vorhanden ist. Also gilt der Besucher wieder als ausgeloggt. Sowas kann einen Besucher schonmal ganz schnell vergraulen, denke ich.
Naja, ich habe mir erstmal so beholfen, dass ich eine Abfrage in der front_content.php eingefügt habe, ob der Sessioncookie gesetzt ist oder nicht. Dafür habe ich:
ersetzt durch
. Alternativ könnte man natürlich auch die front_crcloginform.inc.php (oder eine Umleitung auf eine eigenen Fehlerkategorie wie in docs/techref/modules/module.login.html beschrieben) verwenden, die man um einen Hinweis ergänzt, dass Cookies aktiviert sein müssen:
Kann sowas in der Art integriert werden? Falls das Ganze bereits möglich ist und viel einfacher hätte umgesetzt werden können, bitte ich mein Brett vorm Kopf zu entschuldigen.
Gruß
Ingo
Vielmehr ist es so, dass der Besucher direkt nach dem Abschicken des Login-Formulars als eingeloggt gilt, d.h. $auth->auth["uid"] ist gesetzt. Surft dieser nun weiter, wird allerdings auf den Sessioncookie zurückgegriffen, der ja gar nicht vorhanden ist. Also gilt der Besucher wieder als ausgeloggt. Sowas kann einen Besucher schonmal ganz schnell vergraulen, denke ich.

Naja, ich habe mir erstmal so beholfen, dass ich eine Abfrage in der front_content.php eingefügt habe, ob der Sessioncookie gesetzt ist oder nicht. Dafür habe ich:
Code: Alles auswählen
if (isset($username))
{
$auth->login_if(true);
}
Code: Alles auswählen
if (isset($username))
{
$auth->login_if(true);
if ($_COOKIE[$sess->cookiename] == "") {
$logout = true;
}
}
Code: Alles auswählen
if (isset($username))
{
$auth->login_if(true);
if ($_COOKIE[$sess->cookiename] == "") {
$auth->auth_loginform();
}
}
Gruß
Ingo