Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2007, 07:16
jglorenzosqr
 
Fecha de Ingreso: octubre-2005
Mensajes: 778
Antigüedad: 18 años, 7 meses
Puntos: 1
Variable global con $_SESSION no mantiene el valor asignado

En un archivo script php asigno un valor a la variable de sesion :

$_SESSION["autentificado"]="SI";

Luego, en otro script php se realiza una condición :

If ($_SESSION["autentificado"]!= "SI")
{
....
}

Pero esta variable de sesión, a pesar de habersele asignado el valor "SI" anteriormente, siempre pierde el valor al estar en otro archivo php, tiene valor vacío " ". Porqué esto? Acaso no es una variable global de esta manera ?

Parece ser que el valor se pierde al asignarse en un script, y luego se verifico en un tercero. O sea, al pasar a un segundo script se mantiene el valor, y al pasar a un tercero se pierde el valor de la variable de sesión.

Otra cosa, primero valido la entrada del usuario, y al chequearlo entro en un menu de opciones que primeramente también chequeo el tiempo transcurrido sin uso por el usuario. Muestra el menu, y en milésimas de segundos el programa vuelve al index.php para pedir la clave de entrada al sistema.

Este es mi script :

verificar.php :
$_SESSION["Num_Sesion"]="0";
include("chequear_sesiones.php");
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;url=http://www.procesadoras.com/menu.php'>";


chequear_sesiones :
if ($_SESSION["Num_Sesion"]=="1")
{
if ($_SESSION["autentificado"] != "SI")
{
// Si no está logueado se envia a la página de inicio de sesión
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; url=http://www.procesadoras.com/acceso.php'>";
}
else
{
//Sino se calcula el tiempo transcurrido
$fecha_Guardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fecha_Guardada));

// Se compara el tiempo transcurrido
if ($tiempo_transcurrido >= 600 )
{
// Pasaron 10 minutos o más
session_destroy();
// Se destruye la sesión
header("Location: acceso.php");
// Se envia a la página de autentificación
}
else
{
$_SESSION["ultimoAcceso"] = $ahora;
}
}
}
else
{
$_SESSION["autentificado"]="SI";
$_SESSION["ultimoAcceso"]=date("Y-n-j H:i:s");
}



menu.php :
$_SESSION["Num_Sesion"]="1";
/*
echo "Autentificado ".$_SESSION["autentificado"];
If ($_SESSION["autentificado"]!= "SI")
{ */
include("chequear_sesiones.php");
// }
echo "<img src='http://www.procesadoras.com/ME_zcojedes_2007.jpg'>";