phpbar.de logo

Mailinglisten-Archive

[php] htaccess ?

[php] htaccess ?

Markus Dobel dobel_(at)_femu.rwth-aachen.de
Thu, 06 Jul 2000 13:53:07 +0200


Jens Schwehn wrote:
> 
> Wenn der User sich authentifiziert hat, wird der User in eine DB oder
> Textdatei geschrieben. Beim naechsten Login wird getestet ob der User
> schon abgespeichert wurde. Ist das der Fall, so wird Ihm gesagt das ein
> doppelter Login nicht moeglich ist - ansonsten wird er reingelassen.
> Ich weis jetzt nicht ob es auch Serverseitig geht - waere wohl das
> geschickteste.

HTTP kennt kein "Einloggen". Der Aufruf einer geschuetzten Datei
geschieht durch uebersenden von Username und Passwort in den
Request-Headern. Stimmen die mit definierten "Accounts" ueberein, darf
der Browser die Datei empfangen. Clickt der Benutzer dann auf einen
weiteren Link im geschuetzten Bereich, uebermittelt der Server zunaechst
wieder einen Auth-Header, woraufhin der Browser automatisch wieder das
zuvor eingegebene Username/Passwort-Paar zurueckschickt und somit fuer
den User transparent jedes Mal aufs Neue die Authentifizierung vornimmt,
sodass es fuer Ihn aussieht, als gaebe es dort eine
Session-Funktionalitaet mit Login.

Fuer den Server gibt es keine Unterscheidungsmoeglichkeit zwischen
erstem Aufruf einer geschuetzten Seite und darauffolgenden Requests.
Fuer den Server "loggt" sich der Benutzer jedes Mal aufs neue ein.

Was hier gesucht und benoetigt wird, ist "echte"
Session-Funktionalitaet. Hier koennen Stati wie "Betreten" der Seite und
Authentifizierung durch einmaligen Login unterschieden werden. Mit
Sessions ist ebenfalls moeglich, ein und den selben User nur einmal
parallel zuzulassen (Wenn auch nicht unbedingt ratsam).

Was trotz Sessions nicht vom Server und der darauf laufenden Anwendung
sicher in Erfahrung gebracht werden kann, ist, wann ein Benutzer die
Seiten "Verlaesst". Man kann dem Benutzer zwar einen Logout-Knopf
bereitstellen, aber kann sich nicht darauf verlassen, dass er diesen
auch immer drueckt (z.b. wenn der Browser abschmiert). Daher muss die
Session nach einer bestimmten Zeit eben auch verfallen (Expire).

Gerade, wenn Du nur einen Login pro User zulassen moechtest, ist der
Expire-Zeitraum aber schwierig zu waehlen: Setzt Du Ihn zu kurz an, kann
der Benutzer u.U. nicht mehr vernuenftig mit der Seite arbeiten, weil er
staendig dank Expire "rausfliegt" und sich wieder neu anmelden muss. 
Setzt Du den Zeitraum zu kurz an, muss der Benutzer u.U. erst einmal
lange warten, bevor er sich nach einem Browsercrash wieder anmelden
kann.

Mehr Informationen zu Sessions findest Du auf:

http://phplib.netuse.de/
http://www.php.net/manual/ref.session.php

Wobei die php-eigenen Session-Funktionen erst mit PHP4 eingefuehrt
wurden. Mit der PHPlib kannst Du die gleiche (bzw. noch flexiblere)
Funktionalitaet auch auf PHP3 benutzen. 

Gruss, Markus


php::bar PHP Wiki   -   Listenarchive