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