Foros del Web » Programando para Internet » PHP »

Comportamiento extraño de $_SESSION

Estas en el tema de Comportamiento extraño de $_SESSION en el foro de PHP en Foros del Web. Me estoy volviendo loco! (más de lo que ya estoy... :P). El caso es que tengo el siguiente código y cuando redirecciona a index.php, si ...
  #1 (permalink)  
Antiguo 28/12/2006, 06:15
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Comportamiento extraño de $_SESSION

Me estoy volviendo loco! (más de lo que ya estoy... :P). El caso es que tengo el siguiente código y cuando redirecciona a index.php, si el login es correcto, muestra la matriz $_SESSION correctamente con todos los valores asignados, pero cuando el login es incorrecto, aparece vacía (cuando debería aparecer el valor de $_SESSION['log'] = 1)!!! y lo más curioso es que cuando reviso el archivo de sesión (sess_) todo está correcto, el valor de log está allí!!! no lo entiendo!!! como es que está en el sess_ y no en $_SESSION?

Código PHP:
<?
   session_start
();
   include (
"connection.inc.php");
   
$user strtolower($_REQUEST['username']);
   
$pass $_REQUEST['password'];
   
$remember $_REQUEST['recordarme'];
   
$pass md5($pass);
   
$sql mysql_query("SELECT * FROM users WHERE user_nick = '".$user."' and user_pass = '".$pass."'")
             or die(
'Hay un error en la sql');
   
$result mysql_fetch_array($sql);
   unset(
$_SESSION['user_connected']);
   unset(
$_SESSION['user_id']);
   unset(
$_SESSION['user_rank']);
   unset(
$_SESSION['user_nick']);
   unset(
$_SESSION['log']);
   unset(
$_SESSION['reg']);
   if(
$result){
       
$text $result['user_id']."+".$result['user_rank']."+".$result['user_nick'];
       if(
$remember){
           
setcookie("swc","$text",time()+604800);
       }else{
           
setcookie("swc","$text");
       }
       
$_COOKIE["swc"]=$text;
       
$user_data explode('+',$text);
       
$_SESSION['user_connected'] = 1;
       
$_SESSION['user_id'] = $user_data[0];
       
$_SESSION['user_rank'] = $user_data[1];
       
$_SESSION['user_nick'] = $user_data[2];
       
$vars="var=l_success";
       
$_SESSION['log'] = 1;
       unset(
$text);
       unset(
$user_data);
   }else{
       
$vars="var=l_failed";
       
$_SESSION['log'] = 1;
   }
   unset(
$user);
   unset(
$pass);
   unset(
$remember);
   unset(
$sql);
   unset(
$result);
   
header('Location: index.php?'.$vars);
?>
Se me olvidava, tengo:
session.use_trans_sid = 1
register_globals = Off
  #2 (permalink)  
Antiguo 29/12/2006, 04:52
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Comportamiento extraño de $_SESSION

Bueno, lo he solucionado, he encontrado la causa y la solución pero no entiendo muy bien el porqué.
El caso es que cuando utilizo el unset($_SESSION['xxx']) es cuando aparecen los problemas, así que la solución ha sido hacer un unset de todas las $_SESSION['xxx'] sólo al hacer el Logout. Hecho de esta manera no hay ningún problema.

Espero esto sirva de ayuda a quien pueda estar en la misma situación.

Saludos
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 15:22.