Muy sencillo:variables de sesión no parecen estar guardados código
<?
session_start();
$_SESSION['t'.time()] = "ok";
echo "<pre>".print_r($_SESSION, 1)."</pre>";
?>
espectáculos, como se esperaba, algo así como
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
)
después 3page recargas.
Vamos a cambiar algunos símbolos:
$_SESSION[time()] = "ok";
(ahora sin 't') y espero que después de unos recargas algo así como
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
[1330967020] => ok
[1330967021] => ok
[1330967022] => ok
[1330967023] => ok
)
Pero en realidad el resultado es absolutamente diferente:
Array
(
[t1330966834] => ok
[t1330966835] => ok
[t1330966836] => ok
[1330967020] => ok
)
Tenemos 3 celdas de matriz previas ad una y solo una celda 'time' - no importa cuántos ti mes que recarga la página. La hora es correcta, es diferente cada segundo pero solo una celda sin 't'! También probé
$t =time();
$_SESSION[$t] = "ok";
e incluso
$t =intval(time());
$_SESSION[$t] = "ok";
Pero es sólo queda una celda con el tiempo.
Probado en php 5.2.13 y 5.3.10 en 2 servidores diferentes. ¿Qué estoy haciendo mal?
Intente asignar tanto' $ _SESSION ['t'.time()] =' ok '; $ _SESSION [time()] =' ok'' y vea qué pasa. Si 't' versiones siguen apareciendo y la versión baretime no, entonces algo raro está sucediendo. –
No sé lo suficiente sobre las rarezas de las variables de sesión PHP para responder a esta pregunta, pero cuando sacas el' t' se convierte en un índice numérico en lugar de un índice de cadena. Quizás PHP solo almacena un índice numérico en las variables de sesión o algo así. No estoy seguro, pero parece que esto tiene algo que ver con eso. – Travesty3