Problema con sesiones
Hola a tod@s, tengo un problema con las sesiones. Tras comprobar el login de un usuario hago:
session_start();
if(isset($_SESSION["usuario"]))
{
unset($_SESSION["usuario"]);
}
$_SESSION["usuario"] = $usuario;
header("Location: menu.php");
exit();
y dentro de la página menu.php hago:
session_start();
if(!isset($_SESSION["usuario"]))
{
header("Location: index.php");
exit();
}
mi sorpresa es que siempre me redirecciona a index.php, ya que nunca encuentra activa esa variable en la sesión.
Pienso que la configuración del php.ini es correcta por otras configuraciones vista en el foro, de todas formas la comento:
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
session.save_path= C:PHPsessiondata
Llego unos días dandole vueltas y no encuntro el problema agradecería mucho vuestra ayuda.
Gracias
session_start();
if(isset($_SESSION["usuario"]))
{
unset($_SESSION["usuario"]);
}
$_SESSION["usuario"] = $usuario;
header("Location: menu.php");
exit();
y dentro de la página menu.php hago:
session_start();
if(!isset($_SESSION["usuario"]))
{
header("Location: index.php");
exit();
}
mi sorpresa es que siempre me redirecciona a index.php, ya que nunca encuentra activa esa variable en la sesión.
Pienso que la configuración del php.ini es correcta por otras configuraciones vista en el foro, de todas formas la comento:
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
session.save_path= C:PHPsessiondata
Llego unos días dandole vueltas y no encuntro el problema agradecería mucho vuestra ayuda.
Gracias
primero que todo las sesiones no se borran con unset y segundo para que hacer
if(isset($_SESSION["usuario"]))
{
unset($_SESSION["usuario"]);
}
y luego esto?
$_SESSION["usuario"] = $usuario;
porque no te borras ese if y simplemente le asignas el nuevo valor, todo lo demas parece estar bien, solo ten cuidado de que las dos paginas esten a l mismo nivel, porque si asignas una sesion en una pagina no la podras leer en una pagina con un nivel superior, con nivel me refiero a arbol de directorios.
http://myphp.webcindario.com
aqui hay un ejemplo sencillo, para que pruebes tu configuracion
if(isset($_SESSION["usuario"]))
{
unset($_SESSION["usuario"]);
}
y luego esto?
$_SESSION["usuario"] = $usuario;
porque no te borras ese if y simplemente le asignas el nuevo valor, todo lo demas parece estar bien, solo ten cuidado de que las dos paginas esten a l mismo nivel, porque si asignas una sesion en una pagina no la podras leer en una pagina con un nivel superior, con nivel me refiero a arbol de directorios.
http://myphp.webcindario.com
aqui hay un ejemplo sencillo, para que pruebes tu configuracion
Gracias ya he conseguido que funcione.
Pero ahora se me plantea un problema. Cuando se comprueba el login, salto a una pagina de inicio. Desde esta pincho en un enlace y al volver a la página de inicio pierdo el valor de la variable guardada en la sesión.
La página de inicio tiene:
session_start();
if(!isset($_SESSION["cod_usuario"]))
{
header("Location: index.php");
exit();
}
$cod_usuario = $_SESSION["cod_usuario"];
y la página siguiente:
session_start();
include("script/scr-funciones.php");
if(!isset($_SESSION["cod_usuario"]))
{
header("Location : index.php");
exit();
}
$cod_usuario = $_SESSION["cod_usuario"];
¿donde puede estar el problema?
Pero ahora se me plantea un problema. Cuando se comprueba el login, salto a una pagina de inicio. Desde esta pincho en un enlace y al volver a la página de inicio pierdo el valor de la variable guardada en la sesión.
La página de inicio tiene:
session_start();
if(!isset($_SESSION["cod_usuario"]))
{
header("Location: index.php");
exit();
}
$cod_usuario = $_SESSION["cod_usuario"];
y la página siguiente:
session_start();
include("script/scr-funciones.php");
if(!isset($_SESSION["cod_usuario"]))
{
header("Location : index.php");
exit();
}
$cod_usuario = $_SESSION["cod_usuario"];
¿donde puede estar el problema?