2016-08-18 60 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

你的代碼對於這兩個頁面都是正確的,所以你能告訴我那裏有什麼錯誤嗎? –