Después de leer las FAQ y millones de mensajes y tutoriales, soy incapaz de recuperar las variables de sesión. Obviamente, algo se me está escapando. Describo mi situación:
El contexto es el siguiente. En el php.ini, las opciones especificadas son las siguientes:
Código PHP:
session.save_handler = files
session.save_path = "./sesiones"
session.use_cookies = 1
session.use_only_cookies = 0
session.name = PHPSESSID
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_expire = 180
session.use_trans_sid = 1
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Archivo "page1.php":
Código PHP:
session_name("prueba");
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
Código PHP:
session_id($_GET['prueba']);
session_start();
if (defined('SID')){
echo 'Session is active<BR>';
}else{
echo 'Session is not started<BR>';
}
echo '<br>Welcome to page #2<br />';
echo $_SESSION['favcolor']."<BR>"; // green
echo $_SESSION['animal']."<BR>"; // cat
echo $_SESSION['time']."<BR>";
print_r($_COOKIE);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php?'.SID.'">page 1</a>';
Al pasar de "page1.php" a "page2.php", se envía correctamente la variable SID, y si echo un ojo al directorio "sesiones", especificado en el php.ini, veo que, en efecto, las variables de sesión 'favcolor', 'animal' y 'time' están correctamente almacenadas. Pero no encuentro la forma de recuperar sus valores.
He visto que los archivos de sesiones creados tienen la forma "sess_" + SID, no creo que haga falta abrir el archivo de la sesión y de ahí recuperar las variables, ¿o sí?
Asimismo, antes, en el php.ini, el valor de "use_only_cookies" estaba puesto a 1, supongo que en tal caso es imposible recuperar la sesión si no es por medio de las cookies, por lo que he puesto su valor a 0.
Os agradecería infinitamente que me echárais una mano, llevo con hoy tres días y no le encuentro el truco.
Muchísimas gracias de antemano