Foros del Web » Programando para Internet » PHP »

Cierra sesion pero no borra cookie

Estas en el tema de Cierra sesion pero no borra cookie en el foro de PHP en Foros del Web. Bueno, tengo esta situacion, los usuarios de mi web inician sesion mediante un formulario, todo bien hasta que cierran sesion, cuando cierran sesion el php ...
  #1 (permalink)  
Antiguo 17/08/2006, 13:39
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 204
Antigüedad: 12 años, 8 meses
Puntos: 1
Cierra sesion pero no borra cookie

Bueno, tengo esta situacion, los usuarios de mi web inician sesion mediante un formulario, todo bien hasta que cierran sesion, cuando cierran sesion el php si les cierra su sesion correctamente pero no se borra la cookie enviada a la maquina ¿existe alguna regla o algo asi?

Abro sesion asi:

Código PHP:
session_start();
session_register("autentificado");
$autentificado "SI";
setcookie("user"$usuariotime()+86400'/'); 
y en la pagina donde cierran sesion, en la parte de arriba, antes del codigo de html tengo esto:

Código PHP:
<?
session_start
();
session_destroy();
setcookie ("User");
?>
pero ¿porque no se borra la cookie?

pues gracias de nuevo.
__________________
www.eris.com.mx
  #2 (permalink)  
Antiguo 17/08/2006, 15:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 177
Antigüedad: 11 años, 3 meses
Puntos: 1
recuerdo haber leido que para borrar la cookie debes setear el tiempo a un timestamp pasado. ya que tu estas poniendo un lifetime a la cookie

setcookie("user", $usuario, time()+86400, '/');

y luego para borrarla, realmente no la estas borrando sino redefiniendola pero el lifetime sigue siendo el mismo.

de esta forma deberia funcionar.

setcookie ("User", "", time()-86400, '/');


porfavor corrijanme si me equivoco.
  #3 (permalink)  
Antiguo 17/08/2006, 16:37
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 204
Antigüedad: 12 años, 8 meses
Puntos: 1
Re:

Hola, gracias por tu ayuda.

Y bueno, pues parece que si funciona como dices, ya que he colocado las cosas como mencionas y si se borra la cookie, al loguarse la cookie aparece y al cerrar sesion la cookie desaparece.

Solo queda un detalle, ya que las paginas siguen reconociendo que existe la cookie, me muestran el campo vacio donde deberia ir el contenido de la cookie pero ésta ya no está , que rarito es esto.

Bueno, lo importante es que la cookie si se borra, habra que analizar lo demás por que sucede .

Gracias de nuevo!!.
__________________
www.eris.com.mx
  #4 (permalink)  
Antiguo 17/08/2006, 19:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Recomendación ..

NO USES session_register() .. está obsoleto y es inseguro:
www.php.net/session

Usa $_SESSION:

Código PHP:
session_start(); 
$_SESSION['usuario']=$usuario
Tampoco tiene sentido usar tu variable de sesión como "autentificado=SI" .. SI ya tienes una variable que te puede servir (tu "user") .. usala! y definela asì en tu variable de sesión.

Sòlo tienes que validar "si existe" para saber que tu sesión está activa!:

Código PHP:
session_start();
if (isset(
$_SESSION['usuario'])){
die(
"No está autentificado");

Por cierto .. para que usas la cookie?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 17/08/2006, 20:12
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 204
Antigüedad: 12 años, 8 meses
Puntos: 1
De acuerdo OK, muy bien

Hola cluster, gracias por tu ayuda y pues si, aplicare tu consejo, ya que es mucho mejor.

Y bueno, la cookie la uso al momento en que el usuario se loguea, le envio una cookie con su nombre de usuario o nick y la uso para personalizar su navegacion poniendole su "nick" en las paginas, para permitir que descargue algun archivo (si hay cookie le permito la descarga).

Pero lo que no me he explicado aun es que por ejemplo si algun usuario esta logueado y se mete a hacer un nuevo registro, el script que registra en la bdd verifica si existe esa cookie y le dice que no puede registrar porque ya hay una cuenta activa, entonces hay un boton que le lleva a otra página donde supuestamente deberia de "cerrar la sesión que esta activa" y "borrar la cookie" y hasta el momento la sesion si se cierra (¿o será que no? ) y con la solucion que me dieron ya se borra la cookie, pero despues de eso si se intenta nuevamente hacer un registro vuelve a decir que "la sesion esta activa" aunque ya la cookie no existe.

Hasta ahora no me causa problemas muy graves, pero pues si me gustaria dejarlo bien al 100%.

Bueno, pues ese es el rollo, espero no ser enredoso.

Saludos!!!!!
__________________
www.eris.com.mx
  #6 (permalink)  
Antiguo 17/08/2006, 20:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
No es nescesario usas una cookie, usa tu variable de sesion, esta disponible mientras la sesion esta activa y te sirve para lo mismo.

La forma que lo estas haciendo (usando sesiones y cookies) es mas dificil de leer inclusive, te recomiendo que replantees tu codigo a que use solo sesiones o solo cookies.
  #7 (permalink)  
Antiguo 17/08/2006, 20:43
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 204
Antigüedad: 12 años, 8 meses
Puntos: 1
De acuerdo mm ok

Bueno, pues creo que estas cosas son las que hay que aprender para que los codigos queden mejor planteados y trabajen mejor.

He investigado acerca de las sessiones y como imprimir en la página el nombre de la sesión y si, parece ser mejor manejarlo asi, creo que me va a ir muy bien .

Tal vez asi me saco del problema de que si se borra la cookie etc etc etc .


Gracias por su ayuda y recomendaciones.
__________________
www.eris.com.mx
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 02:52.