Foros del Web » Programando para Internet » PHP »

como eliminar sesiones tras un tiempo

Estas en el tema de como eliminar sesiones tras un tiempo en el foro de PHP en Foros del Web. hola a todos, estoy intentando hacer una tienda online, y estoy ahora mismo liado con el tema de sesiones; os explico: El usuario esta registrado ...
  #1 (permalink)  
Antiguo 03/05/2010, 11:28
 
Fecha de Ingreso: junio-2009
Mensajes: 103
Antigüedad: 15 años, 5 meses
Puntos: 0
como eliminar sesiones tras un tiempo

hola a todos, estoy intentando hacer una tienda online, y estoy ahora mismo liado con el tema de sesiones; os explico:

El usuario esta registrado en la base de datos como administrador o como cliente normal, entonces cuando el cliente introduce su nombre de usuario y password lo que hace mi codigo es comprobar si es cliente o es administrador y dependiendo de eso le envia a una pagina u otra y creo la siguiente sesion:

//aqui le doy el valor que el cliente ha escrito en el formulario de autenticacion a la variable $usuario
$usuario = $_POST['usuario'];
//creo la sesion
session_start();
//segun sea administrador o usuario normal creo una variable de sesion u otra (en este caso lo hago de administrador)
$_SESSION['name'] = $usuario;
$_SESSION['user'] = "administrador";

entonces creado esto lo que hago es redirigir a una pagina exclusiva para el administrador alli, compruebo que realmente sea administrador para poder acceder y usar esa pagina:

<?php

session_start();

if(!empty($_SESSION['user']) && !empty($_SESSION['name']))
{
if($_SESSION['user'] == 'administrador')
{
echo "perfecto, ha iniciado sesion como administrador";
echo "<BR>bienvenido a casa: ",$_SESSION['name']," eres bien recibido";
}
else
{
echo "Lo siento esta intentando acceder a una zona restringida";
}

}

Vale aqui viene mi pregunta, porque me gustaria borrar la sesion tras 5 minutos de inactividad por si por ejemplo el administrador tiene que salir y tal para que nadien toque la pagina,es mas que nada por seguridad; para ello he tocado la siguiente variable en php.ini:

session.cookie_lifetime = 300

he dejado el explorador abierto sin realmente tocar nada, he esperado 8 minutos por si acaso para ver si se me borrase y cuando he refrescado me ha vuelto a detectar la misma sesion de antes, es decir, no me ha borrado la sesion de administrador... yo creo que es por el session_start() ese que he puesto al principio de la pagina que lo que me hace es revivir la sesion anterior pero esque sino lo pongo no me detecta la sesion creada en la otra pagina...

alguien sabe como puedo hacer?? saludo y gracias de antemano!!!
  #2 (permalink)  
Antiguo 03/05/2010, 11:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: como eliminar sesiones tras un tiempo

Fijate aca:

http://www.php.net/manual/es/functio...kie-params.php
  #3 (permalink)  
Antiguo 03/05/2010, 12:51
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: como eliminar sesiones tras un tiempo

eso es para las cookies no ?...
las variables de $_SESSION se define el tiempo de vida en el servidor... o con un script que te guarde en el servidor la session creada y cada ves que hagas un request al servidor verifique el tiempo entre la creacion y el limite. y si es superior unset() =)
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 03/05/2010, 13:01
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: como eliminar sesiones tras un tiempo

La id de sesion se guarda en una cookie, si la cookie muere la id de session también por lo tanto la session.

Un saludo
  #5 (permalink)  
Antiguo 03/05/2010, 14:46
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: como eliminar sesiones tras un tiempo

en alguns paginas cms como moodle en la base de datos de users, existe:
nick
pass
idsesion
time
donde en time se controla el tiempo, como si fuera cookie, solo que se checa cada vez que accede a cierta parte de la pagina(se puede poner en el head, sabiendo que este siempre se muestra), guardas en una sesion la hora de inicio y cotejas con el time de base de datos, saludos
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #6 (permalink)  
Antiguo 03/05/2010, 15:54
 
Fecha de Ingreso: junio-2009
Mensajes: 103
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: como eliminar sesiones tras un tiempo

la funcion session_set_cookie(10);
sigue sin borrarme la cookie, el codigo que pongo es el siguiente:

session_set_cookie_params('10');
session_start();


if(!empty($_SESSION['user']) && !empty($_SESSION['name']))
{
if($_SESSION['user'] == 'administrador')
{
echo "perfecto, ha iniciado sesion como administrador";
echo "<BR>bienvenido a casa: ",$_SESSION['name']," eres bien recibido";
}
else
{
echo "Lo siento esta intentando acceder a una zona restringida";
}

}

lo que hago es esperar 10 segundos, vuelvo a refrescar pero sigue saliendo la sesion que se creo :s NI BORRA NI NADA!!

Última edición por veronica21; 03/05/2010 a las 16:00

Etiquetas: eliminar, sesiones, tras
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 10:33.