Foros del Web » Programando para Internet » PHP »

Navegador recarga una y otra vez con cookies

Estas en el tema de Navegador recarga una y otra vez con cookies en el foro de PHP en Foros del Web. Hola cracks, Tengo un error rarísimo y no encuentro nada parecido (muy probablemente porque no sé muy bien cómo llamarlo y por tanto buscarlo). Tengo ...
  #1 (permalink)  
Antiguo 14/03/2011, 14:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Navegador recarga una y otra vez con cookies

Hola cracks,

Tengo un error rarísimo y no encuentro nada parecido (muy probablemente porque no sé muy bien cómo llamarlo y por tanto buscarlo).

Tengo un sistema de logueo con cookies que funciona bien, salvo en este caso:

Si me logueo en el sistema, marco la opción recordar (salta la cookie) cierro el navegador y lo vuelvo a abrir, el sistema se vuelve loco y redirecciona una y otra vez de manera infinita. Es decir, carga la index, reconoce que hay una cookie activa y carga el menú, pero otra vez vuelva a la index y otra vez al menú y así infinitas veces.

Esto no ocurre si tengo varias pestañas, cierro la de mi sistema, vuelvo a abrir otra pestaña, entro y hace bien el redireccionamiento. Sólo pasa cuando cierro el navegador al completo sin cerrar sesión en mi web. Pasa en todos los navegadores.

Les dejo el código a ver qué puede estar fallando, porque no tengo ni idea:

Login.php:
Código PHP:
.
.
.
$user makeSafe($_POST["user"]);
    
$pass makeSafe($_POST["pass"]);
    
$recordar 0;
    
    if(isset(
$_POST["recordarPass"]))
    {
    
        
$recordar $_POST["recordarPass"];
        
    }
.
.
.
if(
$recordar == 1)
        {
        
            
/*Creamos las cookies que duran 90 días*/
            
            
setcookie("usNick",$user,time()+7776000);
            
setcookie("usPass",$clave,time()+7776000);
            
        } 
En la cookie se llama clave porque la transformo para encriptarla.

En el index.php tengo:

Código PHP:
ob_start();
    
    include(
'funciones.php');
    include(
"ingreso.php");
    
    
$conexion bd();
    
    if(
$loginCorrecto)
    {
    
        if(
$tipoUsuario =='User'/*Comprobamos el tipo de usuario para saber qu menu mostrar*/
        
{
        
$_SESSION['id'] = $id;
            echo 
'<meta http-equiv="refresh" content = "0; url = menu.php">'/*Mostramos el menu estándar*/
            
        
}else
        {
        
            echo 
'<meta http-equiv="refresh" content = "0; url = Administracion/menuAdmin.php">'/*El usuario es admin, por tanto mostramos el menú de administración*/
            
        
}
    } 
En ingreso.php:
Código PHP:
<?php
ob_start
();
?>
<?php
  
      
      
include_once ('funciones.php');
    
    
$conexion bd();
    
      
$loginCorrecto false;
  
      
$id;
      
$nombre;
      
$tipoUsuario;
      
      if(isset(
$HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))
      {
      
          
$sql "SELECT * 
                  FROM usuarios 
                  WHERE user='"
.$HTTP_COOKIE_VARS["usNick"]."'
                  AND pass='"
.$HTTP_COOKIE_VARS["usPass"]."'";
          
          
$res mysql_query($sql);  
    
       
          if(
$row mysql_fetch_array($res))
          {
          
              
setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000);
              
setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000);
              
              
$loginCorrecto true;
              
$id $row["id"];
              
$nombre $row["user"];
              
$tipoUsuario $row["tipo"];
              
          }else
          {
          
              
//Destruimos las cookies.
              
setcookie("usNick","x",time()-3600);
              
setcookie("usPass","x",time()-3600);
              
          }
          
              
mysql_free_result($res);
            
    }
    
ob_end_flush();
?>
Alguna idea??

Gracias!

Última edición por bienpiyao; 14/03/2011 a las 16:11
  #2 (permalink)  
Antiguo 14/03/2011, 16:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Navegador recarga una y otra vez con cookies

Solucionado. Me faltó poner la línea
Código PHP:
$_SESSION['id'] = $id
cuando comprueba si existe la cookie.

Dejo la solución por si alguien tiene alguna vez el mismo problema.

SaludoS!!

Etiquetas: cookies, recarga
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 20:33.