2010-04-12 158 views
0

我在使php的註銷碼工作時遇到困難。 當我點擊註銷按鈕時,它會回到主頁,但是當我點擊瀏覽器中的後退按鈕時。我仍然可以訪問上一頁,其中用戶必須登錄才能訪問它。 因此,當用戶點擊瀏覽器上的後退按鈕時,我正在考慮重定向到登錄頁面。如何在php中重定向頁面

這是我的代碼,在主頁(其中在沒有用戶尚未登錄,這個頁面被用戶頁面上的註銷鏈接調用。

<? 
session_start(); 
session_destroy(); 
?> 
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<form name="form1" method="post" action="checklogin.php"> 
<td> 
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td colspan="3"><strong>Member Login </strong></td> 
</tr> 
<tr> 
<td width="78">Username</td> 
<td width="6">:</td> 
<td width="294"><input name="myusername" type="text" id="myusername"></td> 
</tr> 
<tr> 
<td>Password</td> 
<td>:</td> 
<td><input name="mypassword" type="text" id="mypassword"></td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td><input type="submit" name="Submit" value="Login"></td> 
</tr> 
</table> 
</td> 
</form> 
</tr> 
</table> 

回答

0

腳本啓動之前的空格將打破stunti提出的「位置」方法。

<? 
^^^ 

小心並將其移除。

2
<?php header('Location:'. $myurl);exit;?> 

應該做的竅門重定向假設什麼都沒有發送到瀏覽器

但是你的問題更多的是檢查用戶是否有正確的憑證這個頁面。在session_start()之後,你應該檢查用戶是否存在於會話。 例如,當用戶登錄時ING,裝上去的會議,以確定您的用戶:當您要訪問需要用戶的任何頁面登錄

<?php $_SESSION['user_id'] = $userid; ?> 

<?php if (empty($_SESSION['user_id)) { header('Location: /');exit;} ?> 

所以如果user_id是不存在的會話中,您的用戶未被記錄,因此將他重定向到主頁。

創建它後,您也不應該銷燬會話。只有在用戶退出時才能銷燬會話。但會話開始應該始終完成(只是更容易)

0

在您的註銷頁面中,只需將$ _SESSION ['user_id']取消設置,然後您可以將其重定向到主頁。

unset($_SESSIOM['user_id']); 

然後在需要用戶登錄的所有其他網頁第一隻檢查是否會話的USER_ID設置如果沒有設置只是重定向他們回到主頁,就像stunti上述評論

告訴