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

WBOY
Freigeben: 2016-06-23 14:21:22
Original
1675 Leute haben es durchsucht

有三个界面 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;
Nach dem Login kopieren



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();?>
Nach dem Login kopieren



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

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


回复讨论(解决方案)

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


<?php		echo('<a href="/Logout.php">Logout</a>');?>
Nach dem Login kopieren
Nach dem Login kopieren

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

<?php		echo('<a href="/Logout.php">Logout</a>');?>
Nach dem Login kopieren
Nach dem Login kopieren

这个就是?
你里边都没有验证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>";		}	}?>
Nach dem Login kopieren


修改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;	}?>
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage