я сессия создана так:Выпуск на Разрушая - Завершение сессии на Выходе
<?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>
Благодарности
Update: Вот код сеанса, который я имею в верхней части запретной страницы
<?php
session_start();
if(empty($_SESSION['uName'])){
header('Location: login.php');
}
?>
Если вы вернетесь на страницу, где она находится в БД, и разрешает вам (предполагая, что POST отправлен), IF будет TRUE, а сеанс снова установлен. – James
Спасибо Джеймс, но я не понял, что именно вы имеете в виду? – Suffii
Ваш вопрос не совсем понятен в отношении вашего потока входа, я имел в виду: вы выставляете данные POST в сценарий выше, вы регистрируетесь в качестве правильных учетных данных, задан сеанс, вы переходите на следующую страницу, которая теперь входит в систему, вы выходите из системы, вы выходят из системы, вы нажимаете «назад», данные POST по-прежнему установлены и проверяет данные в БД, снова возвращает TRUE (как это делали ранее данные POST), ваш сеанс создается снова. - Что вы получаете, если в конце файла logout.php вы эхо отзываете свой сеанс (и используйте 'exit()' после эха)? Он все еще установлен? – James