phpbar.de logo

Mailinglisten-Archive

[php] Kennwortschutz mit Timeout

[php] Kennwortschutz mit Timeout

Oliver Kummerow naklar_(at)_altavista.net
Fri, 14 Apr 2000 10:39:28 +0200


Hi,

Klaus Nordmann schrieb:
> 
> Hi,
> 
> ich arbeite an einem System, in dem PHP den Kennwortschutz als basic-realm
> mit Header() erzeugt.
> 
> Das funktioniert so auch hervorragend, außer in einem Fall:
> 
> Wenn der User den Browser öffnet und auf das System geht, also bei der
> ersten Anmeldung in einer Session, hat der Browser die
> Authentifizierungsdaten natürlich noch nicht.
> Er kommt also auf die Site, das System bekommt keinen PHP_AUTH_USER und
> kein PHP_AUTH_PW und fordert zur Anmeldung auf.
> Jetzt gibt der User seine Daten ein, klickt auf ok und das System bekommt
> nun seine Anmeldung.
> Es stellt fest, dass der Timeout abgelaufen ist und fordert den User
> abermals zur Authentifizierung auf.
> Erst danach kommt er hinein.

Erst erfolgt die Useraktion, dann der Blick in die Logtabelle.
Wenn in der DB Zeitpunkt x (für den letzten Click) steht, mußt Du nur
Timeoutoffset y dazuaddieren und das von der aktuellen Zeit z abziehen.
Fällt der Vergleich positiv aus, ist das ein Timeout.
z-(x+y) < 0  -> kein Timeout
z-(x+y) > 0  -> Timeout

Zumindest hatte ich auf die Weise noch keinen Doppellogin.

Version ohne DB

if($C->validlogin) {
	if(!isset($C->lastpageimpression)) {
		$maxtime = time() + $cfg["admintimeoutoffset"];
	}
	else {
		$maxtime = $C->lastpageimpression + $cfg["admintimeoutoffset"];
	}
	
	if($maxtime < time()) {
		$C->validlogin = FALSE;
		$resetadmin = TRUE;
	}
	else {
		$C->validlogin = TRUE;
		$C->lastpageimpression = time();
		$resetadmin = FALSE;
	}
}	


mit freundlichen Grüßen, 
oK.


php::bar PHP Wiki   -   Listenarchive