重定向到上次会话,无需登录(阻止自动注销)

时间:2011-12-23 02:19:24

标签: php session cookies logout

我的网上有一些输入表格。但在此之前我需要先登录才能直接输入页面。

最后一次,如果我的PC崩溃然后再次打开,我的铬浏览器将显示恢复按钮。点击后,我的最后一页将返回,无需再登录。

但是为什么即使我点击按钮也不能这样做。

这是我输入页面中的PHP脚本:

<?php
session_start(); //Start the session
if(isset($_SESSION["loguser"])){
//if(!session_is_registered("loguser")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}
else //Continue to current page
header( 'Content-Type: text/html; charset=iso-8859-1' );
?>

我想要做的是如果我不注销我的页面就不需要登录了。 如果我们点击退出按钮,如何使cookie过期?

感谢。

3 个答案:

答案 0 :(得分:0)

!错过了if条件。(你能查一下吗?)

if(isset($_SESSION["loguser"])){
//if(!session_is_registered("loguser")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}

应该是

if(!isset($_SESSION["loguser"])){
//if(!session_is_registered("loguser")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}

答案 1 :(得分:0)

我这样改变:

<?php
session_start(); //Start the session
setcookie("loguser");
if(!isset($_COOKIE["loguser"])){
     header("location:login.php"); // Redirect to login.php page
     }
else { //Continue to current page
     header( 'Content-Type: text/html; charset=iso-8859-1' );
     }
?>

答案 2 :(得分:0)

如果在检查cookie是否已设置之前设置了cookie,则if语句将永远不会触发或按预期运行。 您应该在login.php下设置cookie,就像将来到期一样:

setcookie("loguser","John Doe",time()+60*60*24*30);  //Expires in 30days

否则,cookie会被视为会话变量,并在会话关闭后立即被丢弃。

出于安全原因,您还应该使用数据库中的内容检查cookie值,因为可以在用户的​​浏览器上轻松读取和更改cookie的值。