Foros del Web » Programando para Internet » PHP »

Destruir sesiones, almacenadas en base de datos. Ayuda

Estas en el tema de Destruir sesiones, almacenadas en base de datos. Ayuda en el foro de PHP en Foros del Web. Que tal amigos Estoy realizando un sistema de reservación de hoteles y tengo la siguiente necesidad - Cada vez que un usuario desea comprar una ...
  #1 (permalink)  
Antiguo 27/01/2006, 11:33
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 18 años, 5 meses
Puntos: 2
Destruir sesiones, almacenadas en base de datos. Ayuda

Que tal amigos

Estoy realizando un sistema de reservación de hoteles y tengo la siguiente necesidad

- Cada vez que un usuario desea comprar una reservación necesito iniciar una sesión (hasta aquí estoy bien)

- Cada vez que la sesión se inicia, guardo los datos de esa sesión en una base de datos (id de la sesión, fecha/hora de inicio de la sesión, entre otros datos), hasta este punto sigo bien.

- Siempre que este script inicia, verifica la base de datos y busca los ids de las sesiones que iniciaron aproximadamente más de 3 minutos. (hasta aquí seguimos yendo bien).

- Pero viene el siguiente problema: pues a pesar que el resultado de la consulta anterior me arroja todos los ids de sesión que ya llevan más de 3 minutos, no he conseguido eliminar las sesiones que contengan dichas id. Esto deseo realizarlo con la finalidad de que automáticamente se realicen una serie de acciones que contengan dichos ids;


estoy haciendo algo semejante al siguiente código

$Conexion=mysql_connect($hostlocal,$usuario,$passw ord); //conecto a la base de datos
mysql_select_db($base,$Conexion);

$sql = "select Id from control_sesion";
//busco las sesiones, en este ejemplo no estoy validando el tiempo, sin embargo no es necesario pues solamente es un ejemplo.

$result = mysql_query($sql,$Conexion);

//en el siguiente bucle intento eliminar todas las sesiones que me arroje la consulta
while ($fila = mysql_fetch_row($result))
{
session_start(); //inicio la sesión
$id = $fila[0]; //obtengo la id de la sesión
session_id($id); //asigno id obtenida de la consulta a la sesión
session_unset(); //destruyo variables
session_destroy(); //ERROR: intento destruir la sesión, sin embargo aquí es donde me bota.

}

el error que me arroja es el siguiente:
Warning: session_destroy(): Session object destruction failed in /windows/D/www/hoteles/destruir_sesion.php on line 17

Gracias de antemano por su ayuda...
  #2 (permalink)  
Antiguo 27/01/2006, 11:39
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Te suplicaria que no dupliques los post's
  #3 (permalink)  
Antiguo 27/01/2006, 12:07
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 18 años, 5 meses
Puntos: 2
Lo de la duplicación de los posts
se debió a un error
pues cuando intenté enviar el post, el sistema de foros me pidió que me loguera otra vez
sin embargo no me indicó si mi mensaje lo envió (o no).

Así que como no estuve seguro de que fue lo que hizo, pues volví a enviar nuevamente el post.

Aclarado el asunto, espero que me puedan ayudar
  #4 (permalink)  
Antiguo 27/01/2006, 12:38
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
comentario1:
no es necesario que uses session_start y luego session_id, podés hacer lo que intentás simplemente con session_start($id);

comentario2:
(de la página de "session_unset" del manual de php)
Nota: Si utiliza $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior), use unset() en su lugar para desregistrar una variable de la sesión. p.ej. $_SESSION = array();

No sé si te servirá de algo, pero no parece haber errores en tu código más allá de estos comentarios.


Saludos.
  #5 (permalink)  
Antiguo 27/01/2006, 12:57
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 18 años, 5 meses
Puntos: 2
Gracias, ya quedó

Gracias por su ayuda, por un momento pensé que no se iba a poder
y tendría que optar por alguna otra opción

Aquí pongo el código como, el cual ya está funcionando
ahora sólo es cuestión de incluirlo en mis páginas
para ver como trabaja

<?

include("datos.php");
$Conexion=mysql_connect($hostlocal,$usuario,$passw ord);
mysql_select_db($base,$Conexion);

$sql = "select Id from control_sesion";
$result = mysql_query($sql,$Conexion);

while ($fila = mysql_fetch_row($result))
{
$id = $fila[0];
session_start($id);
session_unset();
session_destroy();
}

?>
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 21:07.