hoshi: Sessionproblemchen ... und ich komme nicht dahinter. :(

Beitrag lesen

Moin zusammen,

Ich gehe mal davon aus, dass ich den Wald vor lauter Bäumen nicht sehe, aber vielleicht sieht ihn ja sonst jemand.

Es geht um das sessionbasierende Loginsystem, welches hier auf diesen Seiten beschrieben wird, genauer gesagt um die Datei auth.php, welche ich für eigene Zwecke ein wenig modifiziert habe.

Ich möchte ganz einfach unter bestimmten Umständen eine Session beendet haben, ohne serverseitig die PHP.ini zu modifizieren, und habe deswegen das Folgende gemacht:

Beim Aufruf meiner Index-Datei starte ich eine neue Session, hier der Code hierzu:

<?PHP
SESSION_START();
if (!$_SESSION['PDV'])
{
$_SESSION['PDV']= TRUE;
$_SESSION['IP']= $_SERVER['REMOTE_ADDR']; // Speichert die momentane IP-Adresse
$_SESSION['Start']= time(); // Ermittelt die Startzeit der aktuellen Session
$_SESSION['Ende'] = $_SESSION['Start'] +3600; // Session zerstört sich nach einer Stunde selbst
}
?>
<html><body> usw. usw.

Die Auth.php, welche einfach wie in oben genanntem Link beschrieben in Unterseiten eingebunden wird, habe ich folgendermasen erweitert:

<?php
session_start();
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
$curtime = time();
$curIP   = $_SERVER['REMOTE_ADDR'];

if (!isset($\_SESSION['PDV']) // Wert überhaupt vorhanden?  
	|| !$\_SESSION['PDV'] // Wert TRUE?  
	|| ($curtime >= $\_SESSION['Ende']) // Aktuelle Zeit grösser?  
	|| ($curIP != $\_SESSION['IP']) // Passt die IP?  
) {  
$\_SESSION['PDV']= FALSE; // Sicherheitshalber zurücksetzen  
$\_SESSION = array(); // Session-Array leeren  
if (isset($\_COOKIE[session\_name()])) { setcookie(session\_name(), '', time()-42000, '/'); } // Cookie vorhanden, dann weg damit  
session\_destroy(); // Session zerstört  
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php'); // ... und zurück auf die Hauptseite  

exit;
      }
?>

Das funktioniert soweit auch alles, nur eines kommt mir spanisch vor und ich komme nicht dahinter. Mein PC ist idR 24/7 online, und der rosa Riese gibt mir nachts um halb Zwei eine neue IP.
Wenn ich nun morgens an den PC gehe, und einfach mal die Index.php anklicke, dann behält er trotz einer geänderten IP-Adresse die Session-ID. Und ich komme nicht dahinter warum. Ideen?