注销后 点击浏览器后退 又回到登陆后的界面
程序员文章站
2024-02-02 17:35:10
...
有三个界面 logon.php / checklogon.php / detail.php / logout.php
logon.php - session_start() 还有包括登陆form等的其他静态html,点登陆了按钮后跳转到checklogon.php.
checklogon.php - 连接数据库并返回用户信息。如果成功$_SESSION['user'] = 用户的相关信息,并跳转到detail.php。
detail.php - 上面包括了一个注销link,单击后会调用logout.php.
logout.php -
当点击了logout按钮后,页面到了登陆界面,但是点击浏览器的后退按钮后(IE 8/Firefox),前一个detail界面又显示了。 请问大家如何解决。
当点击后退按钮后,detail.php里面的代码并没有执行,应该是缓存的detail.php有显示了出来。
这个就是?
你里边都没有验证session是否存在的代码,即使你销毁了session又有什么用
修改checklogin.php或者新建一个check.php加入验证用户是否存在代码。
在除登陆和退出页面以外的其他页面文件头处都加上上面这段代码。
logon.php - session_start() 还有包括登陆form等的其他静态html,点登陆了按钮后跳转到checklogon.php.
checklogon.php - 连接数据库并返回用户信息。如果成功$_SESSION['user'] = 用户的相关信息,并跳转到detail.php。
$user = UserBusiness::GetUser($_POST["username"], $_POST["password"]);if($user == null){ header("location: /index.php"); exit;}$_SESSION['user'] = $user;
detail.php - 上面包括了一个注销link,单击后会调用logout.php.
logout.php -
当点击了logout按钮后,页面到了登陆界面,但是点击浏览器的后退按钮后(IE 8/Firefox),前一个detail界面又显示了。 请问大家如何解决。
当点击后退按钮后,detail.php里面的代码并没有执行,应该是缓存的detail.php有显示了出来。
回复讨论(解决方案)
你这个得贴出detail.php的验证部分来看看
Logout');?>
你这个得贴出detail.php的验证部分来看看 贴上了
Logout');?>
这个就是?
你里边都没有验证session是否存在的代码,即使你销毁了session又有什么用
修改登陆的PHP,加入如下代码。
IsValid($_POST["username"],$_POST["password"],$ss_user_id)) { $_SESSION["ss_user_id"]=$ss_user_id; //用户ID echo ""; } //如果不正确,刷新页面 else { echo ""; } }?>
修改checklogin.php或者新建一个check.php加入验证用户是否存在代码。
"; echo "alert('您的用户无权进行此操作!');"; echo "location='login.html';"; echo ""; exit; }?>
在除登陆和退出页面以外的其他页面文件头处都加上上面这段代码。