contao/import — Issue #2210: Verhalten: Backendlogin bei deaktivierten Cookies
Author: importer
Created: 2011-11-29 19:13:12+00:00
State: open
Labels: backend, Feature

Hallo Leo,

auf Grund diesen [Threads](http://www.contao-community.de/showthread.php?10278-Benutzung-auf-dem-iPad) bin ich darauf gestoßen, dass das Backend-Login-Handling ungünstig ist, wenn Cookies deaktiviert sind.

Wenn Cookies deaktiviert sind und man sich im Backend einloggen will, passiert aktuell folgendes
# Browser schickt Login-Daten an index.php
# index.php akzeptiert Login, setzt Cookie (vom Browser aber abgelehnt) und sagt dem Browser, er soll auf main.php umleiten
# Browser ruft main.php auf
# main.php lehnt den Seitenaufbau ab, da die Cookies fehlen, und leitet auf index.php um
# Browser ruft index.php auf und erhält Loginseite

Im Prinzip ist das Verhalten korrekt, aber wie man an dem verlinkten Thread sieht, sorgt es beim Benutzer für Verwirrung, da er keinen Hinweis darauf bekommt, was schief lief. Bei den meisten Webseiten sieht man bei deaktivierten Cookies das Backend und nach dem nächsten Click ist man erst wieder raus. Von daher wäre dieses Verhalten auch bei Contao nett.

Es gibt imho 3 Lösungswege, wie man das Problem so beheben könnte, das der Benutzer wenigstens den Fehler erkennt.

# Es wird bei den redericts ein Parameter übergeben, der sagt das man sich eingeloggt hat, so dass die letzte index.php eine entsprechenden Hinweis auf möglicherweise deaktivierte Cookies geben kann (Nachteil: Meldung würde auch erscheinen, wenn man sich die Seite mit dem GET-Parameter bookmart)
# index.php und main.php werden gemergt -> keine Redericts notwendig -> gleiche Verhalten wie bei den meisten anderen Webseiten (ich habe leider noch nicht gesehen, warum main.php und index.php überhabt getrennt sind)
# php bietet eine Methode an um automatisch das beste Verhalten zu erzeugen. Dabei wird beim ersten Aufruf mit einer SID immer ein get-Parameter angehangen und gleichzeitig ein Cookie angelegt. Wenn man beim nächsten Aufruf das Cookie vorhanden ist, geht es ohne Get-Parameter weiter. Sonst wird der immer mitgeführt. Das gute daran ist: Man muss als Entwickler die sid nicht selber an den Pfad anfügen, da es php von alleine macht. Nachteil: Der erzeugte Code ist nicht XHTML-Strict-Valide (würde im Normalfall aber nur den ersten Aufruf betreffen, sofern Cookies erlaubt sind)

--- _Originally created by SunBlack on June 30th, 2010, at 03:02pm (ID 2210)_