guión El PHP es como sigue:PHP - ini_set ('session.gc_maxlifetime', 5) - ¿Por qué no termina la sesión?
<?php // continue.php
ini_set('session.gc_maxlifetime', 5);
session_start();
echo ini_get('session.gc_maxlifetime');
// wait for 7 seconds
usleep(7000000);
if (isset($_SESSION['username']))
{
$username = $_SESSION['username'];
$password = $_SESSION['password'];
$forename = $_SESSION['forename'];
$surname = $_SESSION['surname'];
echo "Welcome back $forename.<br />
Your full name is $forename $surname.<br />
Your username is '$username'
and your password is '$password'.";
}
else echo "Please <a href=authenticate2.php>click here</a> to log in.";
?>
Basado en el tiempo de espera (es decir, 5 segundos), la secuencia de comandos no se debe imprimir nada. Sin embargo, todavía recibir el siguiente mensaje
5Welcome back Bill. Your full name is Bill Smith. Your username is 'bsmith' and your password is 'mysecret'.
Parece que la línea de ini_set ('session.gc_maxlifetime', 5) no funciona como debería ser. Estoy usando Windows XP + XAMMP.
¿Me puede decir cómo hacerlo funcionar?
Gracias
Creo que el punto aquí es que la sesión todavía está activa y, por lo tanto, probablemente no debería estar sujeta a la recolección de basura en ningún caso. No obstante, no estoy seguro. –
@Pekka El punto es que la recolección de basura es inútil aquí porque 1) solo se llamará con una pequeña probabilidad y 2) solo se llama en 'session_start'. – Artefacto
de acuerdo. Además, la recolección de basura es aún más inútil porque la sesión en la que estamos todavía está activa (y algún controlador interno presumiblemente bloqueado). ¿Correcto? –