2016-04-18 2 views
2

У меня есть logout.php страница, которую я использую для выхода из моего проекта PHP.Почему этот сеанс не уничтожен?

<?php 
session_start(); 

$conn4=mysqli_connect("localhost", "root", "", "winkcage"); 
$useronline=$_SESSION["unamsession"]; 
$queryseen="UPDATE signup SET seen='' WHERE username='$useronline'"; 
$queryseenrun=mysqli_query($conn4, $queryseen); 
session_destroy(); 
session_unset(); 
header('Location: login.php'); 
?> 

[Как в Firefox и Chrome]: Когда я нажимаю кнопку выхода из системы, страница перенаправляется на login.php, но когда я загрузить домашнюю страницу еще раз в другой вкладке (которая должна открыться только тогда, когда сеанс не разрушен), он загружается, а не перенаправляется на login.php (это будет моя индексная страница).

Я не знаю, что не так с этим кодом. Делает ли запись session_destroy() до session_unset() какой-либо разницы? Как это исправить?

[Только с Chrome, в Firefox это нормально]: Когда я закрываю Firefox, сеанс автоматически уничтожается, что очевидно, но это не с Chrome. Chrome не уничтожает его. Как это возможно? Я проверил мой код полностью, но я не нашел строку кода, связанную с cookie.

Другая проблема заключается в том, что, когда я вошел в систему на несколько минут (я думаю, 20-30), сеанс автоматически уничтожается. Возможно ли, что я написал для этого код по ошибке? Или это по умолчанию?

+0

ли вы использовать куки сессии? Если да, вы также должны удалить их. Подобно 'setcookie (« YourCookie »,« », time() - 3600),' – bugnumber9

+0

Я не помню, даже если бы я написал его, потому что я работаю над ним в течение последнего месяца. Но шансов очень мало. У меня в основном 2 страницы в этом проекте. 1 - логин, второй - дом. Где я могу найти его, если он написан? – cybrain

+0

Chrome Dev Tools -> Ресурсы -> Cookies – bugnumber9

ответ

1

не уверен, что если вы используете куки или нет, но я думаю, что это будет решать его ....

$queryseenrun=mysqli_query($conn4, $queryseen); 
session_unset(); 
    $_SESSION = array(); 
    // get session parameters 
    $params = session_get_cookie_params(); 
    //delete the actual cppkie 
    setcookie(session_name(),'', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); 
    // Destroy session 
    session_destroy(); 
    //redirect to the index.php 
    header("Location: login.php"); 
    exit(); 
+0

Эй, слушайте, я думаю, проблема в том, что только хром. Он отлично работает в Firefox. Когда я закрываю Firefox, сеанс автоматически уничтожается, что очевидно, но это не с Chrome. Chrome не уничтожает его. Как это возможно? Я проверил мой код полностью, но я не нашел строку кода, связанную с cookie. – cybrain

+0

в настройках проверки браузера Chrome -> при запуске -> проверить, что продолжить, когда вы остановились, не проверяется – PacMan

+0

Это не проверено. – cybrain

1

От http://php.net/manual/en/function.session-unset.php

сессии снята с просто очищает сеанс для использования, но это не так он по-прежнему находится на компьютере пользователя.

Попробуйте следующее:

session_start(); 
session_destroy(); 
$_SESSION = array(); 
header('Location: index.php'); 
+0

Прочтите мой комментарий к 2-му ответу, сэр, это поможет вам лучше понять. – cybrain

Смежные вопросы