2016-08-18 59 views
-2

好的,这是我的问题。 我有一个登录页面。用户登录后,他被重定向到另一页面。 现在,如果我按下后退按钮,用户将返回到登录页面,现在如果按下一页按钮,它将打开该用户的个人档案页面,而不再询问登录信息。与注销页面相同的情况。如果用户在注销后按回来,他仍然可以看到他的个人资料。如何禁用返回在我的登录页面在PHP?

登录页面:

<?php 
session_start(); 
?> 
<html> 
<head> 
<link href="logdes.css" rel="stylesheet"> 
</head> 
<body> 
<div id="box"> 
<p id="p">Welcome to E-Voting</p> 
<form> 
<table width=40% align="center" id="tw"> 
<tr><td>Username:</td><td><input type="text" name="t1"></td></tr> 
<tr><td>Password:</td><td><input type="password" name="t2"></td></tr> 
<tr><td colspan="2" id="td"><input type="submit" value="Login" name="b1">   </td></tr> 
</table> 
</form> 
</div> 
</body> 
</html> 
<?php 
if(isset($_REQUEST['b1'])) 
{ 
$k=$_REQUEST["t1"]; 
$q=$_REQUEST["t2"]; 
mysql_connect('localhost','root',''); 
mysql_select_db('project'); 
$a="select * from login where Username='$k' and password='$q'"; 
$rs=mysql_query($a); 
if(mysql_num_rows($rs)>0) 
{ 
$_SESSION['username1']=$k; 
$_SESSION['password1']=$q; 
while($row=mysql_fetch_array($rs)) 
{ 
if($row['val']==1) 
header("location: adminportal.php"); 
else 
header("location: userportal.php"); 
} 
} 
else 
{ 
echo"No record found!"; 
} 
} 
?> 

个人资料页:

<?php 
session_start(); 
if(!isset($_SESSION['username1'])) 
{ 
header("location: voterlogin.php"); 
} 
else 
{ 
$n=$_SESSION['username1']; 
$q=$_SESSION['password1']; 
echo"Welcome $n"; 
} 
?> 
<html> 
<head> 
<link href="logdes.css" rel="stylesheet"> 
</head> 
<body> 
<div id="box"> 
<p id="z">Voter's Portal</p> 
<form> 
<table width=50% align="center" id="tw"> 
<tr><td><a href="caninfo.php" class="f">List of Election Candidates</a></td>  </tr> 
<tr><td><a href="votenow.php" class="f" id="f1">Vote Now</a></td></tr> 
<tr><td><a href="viewresults.php" class="f" id="f2">View Results</a></td></tr> 
</table> 
</form> 
</div> 
</body> 
</html> 

注销页:

<?php 
session_start(); 
if(isset($_SESSION['username'])) 
{ 
$u=$_SESSION['username']; 
$p=$_SESSION['password']; 
destroy_session_and_data(); 
echo" You have been logged out.<br>Click <a href='index.php'>here</a> to return to the home page."; 
} 
else if(isset($_SESSION['username1'])) 
{ 
$k=$_SESSION['username1']; 
$q=$_SESSION['password1']; 
destroy_session_and_data(); 
echo" You have been logged out.<br>Click <a href='index.php'>here</a> to return to the home page."; 
} 
function destroy_session_and_data() 
{ 
$_SESSION = array(); 
setcookie(session_name(), '' , time()-2592000, '/'); 
session_destroy(); 
} 
?> 
+0

你有什么试过?你收到了哪些错误信息?如果没有显示的错误消息,那么请发布您的PHP错误日志。谢谢 –

+0

您的登录将会以会话形式存储登录信息,因此您在脚本顶部写入session_start()的原因是....您需要清除登出时的会话并注意与缓存有关... ..你不明白的复制和粘贴代码是婊子嘿? –

+0

我怀疑登出代码不正确..你能显示代码吗? – user2399432

回答

-1

您不必禁用缓存这个问题。在用户成功登录凭证后,在开始的每个页面上使用session_start,然后在登录页面中使用该会话变量检查会话变量是否设置,如果设置了会话变量,则必须重定向到配置文件页。

如果你想要这个确切的代码然后分享你的登录页面和个人资料页面,所以我会拉代码。

+0

我提供了登录页面和个人资料页面,并且还删除了缓存代码。我使用会话变量,但我想我可能在某个地方犯了一个错误。 – rashmi

+0

我检查并让你知道解决方案 –

+0

你的代码对于这两个页面都是正确的,所以你能告诉我那里有什么错误吗? –