Hola que tal esta es mi primer pregunta en el foro y espero poder aportar en todo lo que sea, no soy un experto en PHP pero me la arreglo bastante bien asiq en lo que pueda ayudo.
Mi pregunta es la siguiente, tengo todo corriendo en un server Fedora 5 con php 5 y apache2, cada vez que creo una sesión, y en esta utilizo los arreglos de sesión como $_SESSION con distintos valores y paso a otra pagina donde se leen estas variables, estas no son leidas, ahora transcribo los scripts para que se entienda más.
script control
<?php
//Utilizo una funcion para autenticar al usuario
//NO le den importancia a cómo recibo los datos y autentico
$valor = auth ($user, $pass);
if (($valor==true) && ($user!="")&&($pass!="")){//if 1
//inicia la sesion
session_start();
//definimos en el array $_SESSION["autentificado"]="SI"; que demuestra que el usuario está autorizado
$_SESSION["autentificado"]="SI";
//defino la fecha y hora de inicio de sesión en formato aaaa-mm-dd hh:mm:ss
$_SESSION["ultimo_acceso"] = date("Y-n-j H:i:s");
header("Location: "funcion.seguridad.php");
}//en if
?>
Hasta ahi todo bien el siguiente script es el que me da problemas
funcion.seguridad.php
<?
//Comprobamos que el usuario está registrado y no ha llegado aquí por otros //medios dudosos o sea si no existe la variable $_SESSION["autentificado"] es //que no se creo la sesion
if( !isset($_SESSION["autentificado"]))
//Tambien probé con session_is_registered("autentificado")
{
session_unset();
session_destroy();
header("Location: /login.php");
}
else
{
//Si está logueado calculamos el tiempo en que la sesion sera destruia
//momento en que se inicio la sesion, trayendo el dato registrado en el archivo control.php
$fecha_inicio = $_SESSION["ultimo_acceso"];
$ahora = date("Y-n-j H:i:s");
//Calcula cuanto tiempo lleva dentro del sitio desde que inici�sesi�
$tiempo_de_vida = (strtotime($ahora) - strtotime($fecha_inicio));
//Comparamos el tiempo de vida de la sesi�
/*Ahora como versi� de testeo la sesi� durar�10 segundos,
en la versi� final seran 30 minutos o sea 1800 segs*/
if($tiempo_de_vida >= 5)
{
//si se ha superado el tiempo de vida de la sesiion
echo "Se le acabó el tiempo de vida";
//Destruimos la sesion
session_unset();
session_destroy();
//Lo enviamos de regreso a la pantalla de login
header("Location: /login.php");
}
//Si no ha superado el tiempo de vida actualizamos la fecha actual
else
{
$_SESSION["ultimo_acceso"] = $ahora;
}
}
?>
BUeno el problema es que las variables de sesión si se crean en el server xq las abro y las leo pero el script de seguridad nunca puede leer los valores y me lleva de nuevo al login o sea isset($_SESSION["autentificado"] y
session_is_registered("autentificado") nunca me funcionan.
Ya he revisado php.ini y no veo nada raro. Espero que alguien pueda ayudarme, si esta muy complicado de entender porque soy medio enredado haganmelo saber por favor, saludos