Problema con sesiones

jaque
21 de Mayo del 2004
Hola a [email protected], 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

rootphp
21 de Mayo del 2004
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

jaque
21 de Mayo del 2004
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?