无论如何,即使在浏览器关闭后仍然保持会话?

时间:2012-10-21 08:58:49

标签: php session cookies

由于保存cookie不安全。 无论如何都要保持会话或设置会话到期,所以即使我关闭浏览器并再次打开它。它不会再次重定向我或再次要求我输入我的用户名或密码。

public function __construct(){
session_start();
$this->check_login();
}
public function check_login(){
if(isset($_SESSION['user_id'])){
$this->user_id = $_SESSION['user_id'];
$this->logged_in = true;
} else {
unset($_SESSION['user_id']);
$this->logged_in = false;
}
}

if (isset($_POST['submit'])){
$username = $database->escape_value($_POST['username']);
$password = $database->escape_value($_POST['password']);
$found_user = $user->authenticate($username,$password);
if ($found_user){
$session->login();
redirect_to('index.php');
} else {
$message = output_message("Invalid Username or Password <br />");
}
}else{
$username = "";
$password = "";
}

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

会话仅保存在会话cookie中,因此如果用户清除cookie,会话将被删除。用户关闭浏览器时不会清除Cookie。根据Ali的回答,检查会话cookie的生命周期。

如果您真的有兴趣在不使用Cookie的情况下识别返回用户,请使用Google进行“识别不使用Cookie的用户”。你会发现有趣的事情要做,但没有像cookie一样可靠。

答案 2 :(得分:0)

当用户成功登录时,您必须在会话中保存user_id

if ($found_user){
    $session->login();
    $_SESSION['user_id'] = $username;
    redirect_to('index.php');
} 

并确保$username是唯一的。