Foros del Web » Programando para Internet » PHP »

Problemas con las sesiones en IE

Estas en el tema de Problemas con las sesiones en IE en el foro de PHP en Foros del Web. Buenas, tengo problemas con las sesiones en IE. En local me funciona a la perfección, pero en cuanto lo subo a mi servidor, me funciona ...
  #1 (permalink)  
Antiguo 25/01/2013, 14:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 13 años, 8 meses
Puntos: 0
Problemas con las sesiones en IE

Buenas, tengo problemas con las sesiones en IE.
En local me funciona a la perfección, pero en cuanto lo subo a mi servidor, me funciona a la perfección en firefox y chrome, pero en cuento intento ejecutar las sesiones en IE no funciona.

Las sesiones las utilizo como medio de login para los usuarios, detecto que no funciona porque no me da ni error de que no fue creada la sesión, ni de que el usuario no existe, ni nada, cuando se loguea un usuario simplemente pasa por donde tiene que pasar, solo que cuando se redirige a la pagina para ver, es como si no se crearan.

Supongo que sera culpa del servidor, pero no estoy totalmente seguro.

Otra cosa a comentar seria que el método de inicio de sesión no me parece muy seguro y me gustaría vuestra orientación de como realizar uno seguro, así como cual seria el mejor método de encriptación de las contraseñas de los usuarios.

Si necesitáis el código que utilizo decírmelo y lo subo.

Muchas gracias.
  #2 (permalink)  
Antiguo 26/01/2013, 00:16
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con las sesiones en IE

Cita:
Iniciado por Jacobo_otaku
Si necesitáis el código que utilizo decírmelo y lo subo.
Sí, lo necesitamos, de otra forma no podemos saber lo que estás haciendo mal o porqué "falla el servidor".
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 26/01/2013, 02:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problemas con las sesiones en IE

Buenas, antes de poneros el código, quiero añadir que utilizo las sesiones para otra cosa mas, y allí si que me funciona con IE. Una cosa muy rara... entonces deberá ser el código...

El código es:

Código PHP:
Ver original
  1. $email = $_POST['email'];//recupero dato email del formulario
  2.     $contra = $_POST['contra'];//recupero dato contraseña del formulario
  3.     $pass = base64_encode($contra);//encripto la contraseña
  4.  
  5.     include './conexion.php';//conexión a BD
  6.  
  7.     $secure = mysql_query("SELECT * FROM usuarios WHERE email = '$email' AND contrasena = '$pass'", $conn);
  8.  
  9.     if(mysql_num_rows($secure) == 1){//si encuentra el usuario
  10.         $row = mysql_fetch_assoc($secure);//recupero los datos del query
  11.         $banneadou = $row['estado'];//meto el valor de expulsado (banneado)
  12.  
  13.         if($banneadou == 1){//si esta baneado cierra conexión y vuelve a la pagina
  14.             mysql_close($conn); //Cierro conexion BD
  15.             header ("Location: ./index.php?url=login&error=true&error_clase=usuario_banneado");
  16.  
  17.         }else{//sino...
  18.             //Creo la sesión
  19.             session_start();
  20.                 session_register('sesion');//Registro la sesión 'sesion'
  21.                
  22.                 //Meto en una variable los datos necesarios sacados del query
  23.                 $idu = $row['id'];
  24.                 $nombreu = $row['nombre'];
  25.                 $emailu = $row['email'];
  26.                 $contrasenyau = $row['contrasena'];
  27.                
  28.                
  29.                 //Array con los datos básicos del usuario
  30.                 $usuario_array = array(id => $idu,
  31.                                        nombre => $nombreu,
  32.                                        email => $emailu,
  33.                                        contrasenya => '$contrasenyau');
  34.                     $_SESSION['sesion'] = $usuario_array;    //Meto el array en la sesión
  35.                    
  36.                mysql_close($conn); //Cierro conexión BD
  37.                header ("Location: ./index.php");  //Vuelvo a la pagina principal
  38.  
  39.         }
  40.     }else{//Si no da resultados (no existe usuario)
  41.         mysql_close($conn); //Cierro conexion BD
  42.         header ("Location: ./index.php?cont=login&error=true&error_clase=usuario_not_exist");  //Vuelve al la pagina de login con un error
  43.  
  44.     }
  #4 (permalink)  
Antiguo 26/01/2013, 21:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con las sesiones en IE

Para empezar, session_start(); debe ser la primera línea de tu script, no importa si el usuario ingresa correctamente o no, esto te ayudará a evitarte muchos dolores de cabeza.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 05/02/2013, 12:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problemas con las sesiones en IE

Antes de nada, gracias por responderme.
Perdona por tardar, pero no encontraba tiempo para probarlo y comentar el resultado.
Lo he cambiado como me ha dicho y sigue sucediendo lo mismo...

¿Alguna otra idea?
  #6 (permalink)  
Antiguo 05/02/2013, 15:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con las sesiones en IE

session_register() es una función obsoleta, ahora sólo necesitas crear la variable de sesión y listo.

Ahora un par de sugerencias:
Código PHP:
Ver original
  1. if(isset($_SESSION['sesion'])) {
  2.     die('Tienes una sesión iniciada, no puedes ingresar aquí!');
  3. }
  4.  
  5. // Antes de usar una variable en consultas, debes escaparla:
  6. $email = mysql_real_escape_string($email);
  7. $pass = mysql_real_escape_string($pass);
  8.  
  9. // Después de cada header('Location: ...') usa exit
  10. // para evitar que el script se siga ejecutando
  11.         if($banneadou == 1){
  12.             //si esta baneado cierra conexión y vuelve a la pagina
  13.             mysql_close($conn); //Cierro conexion BD
  14.             header ("Location: ./index.php?url=login&error=true&error_clase=usuario_banneado");
  15.             exit;
  16.         } // Ya no necesitas un else, el código quedaría más legible
  17.  
  18. // Si los datos son correctos, entonces sólo creas la variable de sesión:
  19. $_SESSION['sesion'] = array('Aquí los datos del usuario');
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 08/02/2013, 17:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problemas con las sesiones en IE

Sigue pasando, e probado a crear la sesión directamente cuando pasa por esa pagina, y me pasa EXACTAMENTE lo mismo, como si no se hubiera creado...
Otra cosa que he detectado, que, si coloco un array con identificador, que es lo que utilizo para un carro de compra, se machaca el producto anterior, solo sucede eso en IE.
Estoy por hacer que si el usuario utiliza el IE, recomendarle usar otro navegador... (que muestre el mensaje si el usuario utiliza ese explorador...)

Muchas gracias por tu tiempo. Si tienes alguna otra idea...
  #8 (permalink)  
Antiguo 08/02/2013, 17:43
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con las sesiones en IE

Estás usando IE sin habilitar cookies o en modo de compatibilidad?

En base a mi poca experiencia con IE, no he encontrado con qué es compatible usando ese modo.

Ayuda (?): http://www.programandoamedianoche.co...et-explorer-8/
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: sesiones, usuarios
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:01.