Foros del Web » Administración de Sistemas » Apache »

Sesiones y Servidores Virtuales Apache

Estas en el tema de Sesiones y Servidores Virtuales Apache en el foro de Apache en Foros del Web. Buenas a todos, haber si alguien puede resolver el problema que tengo: Tengo un servidor Apache2 con PHP 5. En ese servidor apache tengo montados ...
  #1 (permalink)  
Antiguo 09/06/2008, 02:47
Avatar de keflipas  
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Sesiones y Servidores Virtuales Apache

Buenas a todos, haber si alguien puede resolver el problema que tengo:

Tengo un servidor Apache2 con PHP 5. En ese servidor apache tengo montados varios Servidores Virtuales.

Por ejemplo, la ruta completa para acceder a una página web sería:
http://192.168.XXX.XXX/proyectos/proyecto_1/index.php
La ruta con el Servidor Virtual quedaría de la siguiente manera:
http://servidorvirtual/index.php
Explicado un poco la cosa como la tengo montada, me pasa lo siguiente:

Trabajo con sesiones para ir comprobando si el usuario sigue conectado a la página web cada vez que el usuario navega por la página. Si pasa X tiempo sin hacer nada, la sesión se destruye y vuelve a la página de logueo. Para esto cuando inicializo la sesión, creo una variable que la voy pasando por cada página que el usuario visita, para comprobar si sigue conectado. Lo que me pasa es que si entro a la página web por medio de la ruta completa, funciona perfectamente, pero si entro por medio de la ruta corta, las sesiones se inician pero no se mandan a otras páginas.

Para que quede más claro, os pongo a continuación el código que comprueba si el usuario sigue conectado:

<?php
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] == "SI") {

$aux=1;
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

if($tiempo_transcurrido >= 900) {
$_SESSION["autentificado"]= "NO";
session_destroy();
header ("Location: index.php");
} else {
$_SESSION["ultimoAcceso"] = $ahora;
}

} else {

header ("Location: index.php");
}
?>


Esta es mi página de control. Cada página de mi web tiene un include a este código para comprobar.

Estoy dándole vueltas y no encuentro la causa.

Alguna solución?

Un saludo.

P.D: Como no sé si es problema de configuración de mi servidor o es problema del código, lo he escrito en esta sección.
  #2 (permalink)  
Antiguo 17/06/2008, 23:36
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Sesiones y Servidores Virtuales Apache

prueba lo siguiente

Código PHP:
    session_name('SESSIONCKM');
    
session_set_cookie_params(0,'/','.'.tudominio); 
NOTESE el punto delante de tudominio

Lo que hacemos con el session_set_cookie_params es especificar los datos del cookie de la session que es lo que puede estar fallandote a ti.

si no es asi, vemos de debugear las sessiones mas a fondo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.