Raketenwilli: Umgang mit zerstörter Session

Beitrag lesen

Testcase:

<?php
error_reporting(E_ALL);
ini_set( "display_errors", 1 );



ini_set( "session.save_handler", "files" );
ini_set( "session.save_path", "/var/www/local/session_test/sessions" );
ini_set( "session.gc_maxlifetime", "30" );
ini_set( "session.cache_limiter", "nocache" );


$refresh = 65;

$session_options=[
    'cookie_lifetime' => 86400,
];

session_start( $session_options );
    
if ( ! empty( $_SESSION['last_call'] ) ) {
	$_SESSION['really_last_call'] = $_SESSION['last_call'];
}
$_SESSION['last_call'] = date( "Y-m-d H:i:s" )
?>
<html>
<head>
<meta http-equiv="refresh" content="<?=$refresh;?>" />
<title>Session-Test</title>
</head>
<body>
<pre>
<?php var_dump( $_SESSION ); ?>
</pre>
</body>
</html>

Also. Wenn ich das Sessionfile lösche bekomme ich keinen Fehler, es wird eiskalt eine neue gebaut.

Aber wenn ich darin herumschreibe (Führendes Leerzeichen genügt) kommt diese Fehlermeldung:

PHP Warning: session_start(): Failed to decode session object. Session has been destroyed in /var/www/local/session_test/test.php on line 19

Jetzt muss man nur noch herausfinden, was bei Dir von wem in das Session-File geschrieben wird. Normalerweise ist das lediglich die serialisierte Variable:

last_call|s:19:"2021-12-13 17:34:46";really_last_call|s:19:"2021-12-13 17:33:41"

Kann ich mal sehen, was Dein Skript so treibt?

b.t.w:

nee, Windows 10. IIS mit PHP 8.0.2 als FastCGI.

Naja. Das ist eine mir weitgehend unbekannte Umgebung... könnte ein Rechtskonflikt vorliegen?