Seite 1 von 1

Frontend-Login und Cookieverweigerer

Verfasst: Mi 9. Feb 2005, 19:08
von Dodger77
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:

Code: Alles auswählen

if (isset($username))
{
  $auth->login_if(true);
}
ersetzt durch

Code: Alles auswählen

if (isset($username))
{
  $auth->login_if(true);
  if ($_COOKIE[$sess->cookiename] == "") {
    $logout = true;
  }
}
. 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:

Code: Alles auswählen

if (isset($username))
{
  $auth->login_if(true);
  if ($_COOKIE[$sess->cookiename] == "") {
    $auth->auth_loginform();
  }
}
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

Verfasst: Do 10. Feb 2005, 21:41
von emergence
nun ja wenn ich mich nicht ganz täusche sollte an sich bei den urls die session id mit übergeben werden, falls cookies deaktiviert sind...
sollte funktionieren bei allen urls die mittels $sess->url("front_content.php?idcat=blabla") innerhalb des codes definiert sind...
ich glaub das ging das mal in der 4.3.x...

Verfasst: Do 10. Feb 2005, 21:54
von Dodger77
emergence hat geschrieben:nun ja wenn ich mich nicht ganz täusche sollte an sich bei den urls die session id mit übergeben werden, falls cookies deaktiviert sind...
sollte funktionieren bei allen urls die mittels $sess->url("front_content.php?idcat=blabla") innerhalb des codes definiert sind...
Stimmt, an sich sollte das natürlich möglich sein. In der "conlib/local.php" könnte ich natürlich den $fallback_mode auf "get" setzen (steht normal auf "cookie"), da gibt es aber direkt wieder Probleme, wenn ich mal an

http://www.php-faq.de/q/q-sessions-fallback.html

denke. Schließlich müssen auch durch Redakteure eingegebene Links auch durch $sess->url("front_content.php?idcat=blabla") formatiert werden. Die Module kann ich natürlich demtentsprechend anpassen, aber ob das beim Insite-Editing oder im WYSIWYG-Editor auch klappt?!?
Deshalb dachte ich, dass ein Hinweis an Besucher, die Cookies nicht annehmen, sinnvoll wäre.

Verfasst: Do 10. Feb 2005, 22:17
von emergence
Dodger77 hat geschrieben:Schließlich müssen auch durch Redakteure eingegebene Links auch durch $sess->url("front_content.php?idcat=blabla") formatiert werden. Die Module kann ich natürlich demtentsprechend anpassen, aber ob das beim Insite-Editing oder im WYSIWYG-Editor auch klappt?!?
ich denke mal das war genau der grund warum der fallback auf cookie gestellt wurde...