Foros del Web » Programando para Internet » PHP »

Problemas con sesiones y firefox ¿que hago?

Estas en el tema de Problemas con sesiones y firefox ¿que hago? en el foro de PHP en Foros del Web. HOla foreros, tengo un sistema de usuarios, q valido de la sgte forma: $query = mysql_query("SELECT user,password FROM users WHERE user = '$user'") or die(mysql_error()); ...
  #1 (permalink)  
Antiguo 14/04/2008, 07:43
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Problemas con sesiones y firefox ¿que hago?

HOla foreros, tengo un sistema de usuarios, q valido de la sgte forma:

$query = mysql_query("SELECT user,password FROM users WHERE user = '$user'") or die(mysql_error());

$data = mysql_fetch_array($query);
if($data['password'] == $password) {
$_SESSION['user_simple'] = $user;

Luego en la página de inicio un clásico 'hola $_SESSION['user_simple'];

Hasta aquí no hay líos.
Ahora me he dado cuenta que Firefox hace una cosa extraña. Si no cierro el navegador, cuando me logueo por segunda vez, primero me imprime el nombre del último logueado, incluso sin haberse logueado en la misma pc. Luego q doy actualizar o clic en cualquier cosa del user, pues se arregla, he intentado violar de otras formas el sistema y hasta ahora parece q lo único q hace es esto.
¿En q estoy fallando?

PD. IE no hace esto

saludos
  #2 (permalink)  
Antiguo 14/04/2008, 09:00
Avatar de migueljga  
Fecha de Ingreso: enero-2008
Mensajes: 35
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problemas con sesiones y firefox ¿que hago?

Saludos.
¿qué usas para cerrar sesión? estas manejando el sesion_destroy() ?
Si para cerrar sesión cierras el navegador, no parece lo más indicado, obviamente.
Cuando le dices al sistema que deseas cerrar la sesión usas el sesion_destroy y asi esas variables de sesión son destruídas.
Espero respondas pronto. Hasta luego.
  #3 (permalink)  
Antiguo 14/04/2008, 09:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problemas con sesiones y firefox ¿que hago?

Que tal eulloa, mira no es ún problema lo que tienes, si no que lo que pasa contigo es que no conoces a fondo sobre sesiones a php.

lo que pasa es que has de cuenta que si tú mandas, arrancar tu sesión necesitas tener un apartado que despues de iniciar tu sesión tengas un link para hacer logout

ahora con respecto a firefox, es el único navegador que hace todo lo que le dices, y si arrancas tú sesión, sín darle tiempo de expiración siempre va a existir por lo menos 1 hora a diferencia de chafa Explorer que le vale queso y te cierra todas las sesiones si cierras el navegador.

ahora otra cosa veo que no validas el hecho de que si existe una sesión iniciada, no debe permitirte iniciar una sesión nueva hasta que cierres la actual.

te recomiendo que hagas lo siguiente:


amero arriba de tu página habre y cierra las etiqutas de php y coloca lo siguiente

Código PHP:
<?php
  
   session_name
('el_nombre_que_quieras');
   
session_start();


  
# hasta aquí no indica que ayas iniciado sesión, pero si que tu web maneja sesiones

 #ahora en la parte donde inicias sesión, aparte de asignarle el valor a tú variable de sessión.

 
$_SESSION['user_simple'] = $user;

 
# te convendría mandarle una cookie para validar tiempo de inactividad. esto es   por   
 #ejemplo si el usuario tiene unos 15 min. de no tocar la pc. pues que lo vuelva a mandar al login.

 
setcookie ("NOMBRE_QUE_QUIERAS""VALOR_QUE_QUIERAS"time() + 1800);


 
# ahora recuerdas que mencione una parte sobre el logout

 # pones en una página lo siguiente:

  
session_destroy();

  
setcookie('NOMBRE_QUE_QUIERAS',false);

  unset(
$_SESSION['NOMBRE_DE_TU_SESION']);

  
header('Location:login.php');

  exit();        
 
 
#  esté código que te pongo lo puedes poner directamente en una página, php
 # en blanco y solo pones lo que te puse.
 ######

 # y para validar la inactividad, en tus páginas has lo siguiente:


 
if( !isset($_SESSION['NOMBRE_DE_TU_SESION'])  || !isset($_COOKIE['NOMBRE_QUE_QUIERAS'] ) ){
    
    
header('Location.logout.php');
}else{
    
setcookie ("NOMBRE_QUE_QUIERAS""VALOR_QUE_QUIERAS"time() + 1800);
    
#vuelves a darle más via a tú cookie.
}


# espero poder haberte ayudado. cualquier cosa, comentalo. 
?>
  #4 (permalink)  
Antiguo 14/04/2008, 09:32
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Problemas con sesiones y firefox ¿que hago?

Bueno gracias a los dos por responder.
migueljga: Si manejo el session_destroy, tengo un botón que lo hace, destruye las cookies y las variables de sesión cuando se hace clic, lo q pasa es que no puse el código, lo obvié, disculpa

franklinux: Misma observaciónde arriba, y por supuesto q en cada página valido el $_SESSION[user_simple] e hice todo lo que pusiste acá, lo q pasa es q obvié el código, como dije arriba y no lo puse aquí. Lo de la cookie se lo dejo a php, q lo hace por defecto (no recuerdo el tiempo creo son 24 minutos o algo así), lo q hago con ella solo es cambiarle el nombre y agregrale otro dato q me interesa. Pero más nada.
Bueno es cierto q no conozco a fondo sesiones de php jeje, pero tampoco soy tan inexperto como para obviar eso jejeje

Bueno agregarles q problema resuelto, lo q pasa es que mi administrador no había quitado el sitio de la caché de no sé q cosa (no entiendo mucho de admin red). Pero ya lo hizo y ahora si funciona correctamente
En fin era un problema de red y no de programación.
A los dos muchísimas gracias por su ayuda
saludos
  #5 (permalink)  
Antiguo 14/04/2008, 09:33
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Problemas con sesiones y firefox ¿que hago?

Además, firefox si lo hacía como tenía q hacerlo eh, IE como siempre atrás
saludos
  #6 (permalink)  
Antiguo 14/04/2008, 09:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problemas con sesiones y firefox ¿que hago?

QUE BUENO QUE RESOLVSTE TU PROBLEMA, Y QUE TE AYA PODIDO AYUDAR NOS ESTAMOS VIENDO.
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 11:15.