Cita:
Iniciado por loncho_rojas Pues si cada 30 min muere una variable de $_SESSION algo no está bien. Lo normal es que muera la Cookie, hay métodos para mantener una SESSION activa... revisa [URL="http://www.grabthiscode.com/programacion/como-hacer-un-registro-y-login-php-con-sesiones-y-cookies/"]esto[/URL]
He revisado lo que me has pasado, este el codigo:
Código PHP:
function login ($user,$pass,$recordarme)
{
$user = mysql_escape_string($user);
$pass = mysql_escape_string($pass);
if(strlen($user)<4 || strlen($pass)<4) return -3;
global $salt;
$pass = sha1($salt.md5($pass));
$conexion=mysql_connect("localhost","root","pass",false);
$bd = mysql_select_db("login",$conexion);
mysql_query("SET NAMES 'utf8'");
$sql = "select idUsuario from usuario where UPPER(login)='".strtoupper($user)."' and pass='".$pass."'";
$result = mysql_query($sql,$conexion);
if(mysql_affected_rows()<=0 || !$result) return -1; //user repetido
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Aqui, hace lo que yo hacia con $_SESSION, y si quieres que dure más tiempo hay un if para crear la cookie
$row = mysql_fetch_array($result);
$idUsuario = $row['idUsuario'];
$_SESSION['usuario']=$idUsuario;
if($recordarme){
global $saltCookie;
$cookie = sha1($saltCookie.md5($idUsuario.date("Y-d-m h:i:s")));
$sql2 = "update usuario set cookie='".$cookie."',validez=DATE_ADD(now(),INTERVAL 6 MINUTE) where `idUsuario`='".$idUsuario."'";
$result2 = mysql_query($sql2,$conexion);
setCookie("identificado",$cookie,time()+360,'/'); //cookie 6min
}
$_SESSION['usuario']=$idUsuario;
return true;
}
Hace exactamente lo que quiero hacer yo, para que dure más la sesión hace uso de cookies. Ahí si no me equivoco no hay nada de alargar el tiempo de $_SESSION.
Encripta un par de campos y ya esta, pero si se copia la cookie a otro pc por lo que veo no tiene seguridad y estarias logueado en la web.