> 백엔드 개발 > PHP 튜토리얼 > 注销后 点击浏览器后退 又回到登陆后的界面

注销后 点击浏览器后退 又回到登陆后的界面

WBOY
풀어 주다: 2016-06-23 14:21:22
원래의
1693명이 탐색했습니다.

有三个界面 logon.php / checklogon.php / detail.php / logout.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 -
<?php session_destroy(); header("Cache-Control: private, must-revalidate, no-store"); header("Pragma: no-cache"); header("Expires: Sat, 26 Aug 1997 05:00:00 UTC"); header("location: /logon.php"); exit();?>
로그인 후 복사



当点击了logout按钮后,页面到了登陆界面,但是点击浏览器的后退按钮后(IE 8/Firefox),前一个detail界面又显示了。 请问大家如何解决。

当点击后退按钮后,detail.php里面的代码并没有执行,应该是缓存的detail.php有显示了出来。


回复讨论(解决方案)

你这个得贴出detail.php的验证部分来看看


<?php		echo('<a href="/Logout.php">Logout</a>');?>
로그인 후 복사
로그인 후 복사

你这个得贴出detail.php的验证部分来看看 贴上了

<?php		echo('<a href="/Logout.php">Logout</a>');?>
로그인 후 복사
로그인 후 복사

这个就是?
你里边都没有验证session是否存在的代码,即使你销毁了session又有什么用

修改登陆的PHP,加入如下代码。

<?php	session_start();	//使用session存储用户信息	if(isset($_POST["username"]))  //数据库中读取username用户名	{		$ss_user_id="";				//利用User累的IsValid()方法判断所输入的用户名和口令是否正确		require_once("userclass.php");  //获取用户信息的类		$user=new User();		//如果正确,转到网站首页		if($user->IsValid($_POST["username"],$_POST["password"],$ss_user_id))		{			$_SESSION["ss_user_id"]=$ss_user_id;  //用户ID			echo "<script language='javascript'>";			echo " location='index.php';";			echo "</script>";		}		//如果不正确,刷新页面		else		{			echo "<script language='javascript'>";			echo " alert('用户名或密码错误');";      			echo "</script>";		}	}?>
로그인 후 복사


修改checklogin.php或者新建一个check.php加入验证用户是否存在代码。
<?php	session_start();	if(! isset($_SESSION['ss_user_id']))  //判断是否存在用户ID	{		echo "<script language='javascript'>";		echo "alert('您的用户无权进行此操作!');";		echo "location='login.html';";		echo "</script>";		exit;	}?>
로그인 후 복사

在除登陆和退出页面以外的其他页面文件头处都加上上面这段代码。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿