Immer eingeloggt (Cookie?)
Honda
- php
0 Tom
Hallo,
wir betreiben eine website mit mehreren Servern, leider gibt es immer wieder Session-Probleme.
Wir möchten deshalb ein Cookie setzen, damit der User dauerhaft eingeloggt bleibt. Hat jemand Erfahrung damit, bzw. gibt es vielleicht irgendwo ein kleines Tutorial dazu (wie man dies am besten umsetzt, wie man die Datenbank-Struktur hierzu performant gestaltet,etc.)?
Merci & viele Grüsse,
Honda
Hello,
wir betreiben eine website mit mehreren Servern, leider gibt es immer wieder Session-Probleme.
Welche Probleme sind das?
Wir möchten deshalb ein Cookie setzen, damit der User dauerhaft eingeloggt bleibt.
Das ist innerhalb einer Domain möglich
http://www.php.net/manual/en/function.setcookie.php
siehe hierzu Argunemt "path"
Hat jemand Erfahrung damit, bzw. gibt es vielleicht irgendwo ein kleines Tutorial dazu (wie man dies am besten umsetzt, wie man die Datenbank-Struktur hierzu performant gestaltet,etc.)?
Mir ist jetzt nicht klar, was die Datenbankstruktur direkt mit dem Cookie zu tun haben soll, außer dass man den dort für den User speichern wird.
Da reicht i.d.R. eine Tabelle "Login", in der die gültigen Cookies (für die Seiten des Users) gespeichert werden und eine "User", in der der Loginname und das Passwort hinterlegt werden.
Bei jedem Zugriff schaut man erst nach permanenten Cookies und dann nach transienten.
Wenn einer passt, legt man dort das letzte Zugriffsdatum ab, wenn nicht startet man ggf. den Login-Dialog.
update login
set lastclick
= now() where trans\_cookie
= $trans_cookie
Statuscode und affected rows auswerten. Wenn Update schief ging bzw. keine Zeile betroffen war, war kein gültiges Login vorhaben. Man kann in die Bedinugung auch noch einen Test für die Offenzeit einhbauen
update login
set lastclick
= now()
where trans\_cookie
= $trans_cookie
and lastclick
> now() - $offenzeit; # symbolisch. Zeitfunktionen der Datenbanken benuztzen!
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom