結束會議我有一個會話建立這樣的:問題 - 關於註銷
<?php
session_start();
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = "SELECT * FROM tempusers WHERE user='$email' AND pass='$pass'";
$result = mysqli_query($con,$query)or die(mysqli_error());
$num_row = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);
if($num_row >=1) {
echo 'true';
$_SESSION['uName'] = $row['uName'];
}
else{
echo 'false';
}
?>
,在我logout.php我有
<?php
session_start();
session_unset();
unset($_SESSION['uName']);
session_destroy();
header("Location:index.php");
?>
但沒有的session_unset();
,unset()
和session_destroy();
似乎不工作,因爲進入頁面後,我仍然可以使用瀏覽器「後退」按鈕並返回到受限制的頁面!除了header()
不會將頁面更改爲index.php
您能否讓我知道我在做什麼錯誤以及如何修復它?
基本上,我在受限頁面註銷鏈接是這樣
<a href="logout.php" >Logout</a>
感謝
更新: 這裏是會議的代碼,我在
受限頁面頂部<?php
session_start();
if(empty($_SESSION['uName'])){
header('Location: login.php');
}
?>
如果你回到它進入數據庫並授權你的頁面(假定POST被重新發送),那麼IF將爲TRUE,並且會話再次設置。 – James 2014-10-08 23:52:58
謝謝詹姆斯,但我沒有明確你的意思? – Suffii 2014-10-08 23:56:39
您的問題並不完全清楚您的登錄流程,我的意思是:您將POST表單數據寫入上面的腳本,您以憑據正確登錄,會話已設置,現在登錄到下一頁,單擊註銷,您已經註銷,您點擊後,POST數據仍然被設置,並且檢查數據庫中的數據再次返回TRUE(如POST數據之前所做的那樣),您的會話將再次創建。 - 如果在logout.php文件結尾回顯你的會話(並在echo之後使用'exit()'),你會得到什麼?它仍然設置? – James 2014-10-09 00:01:12