Не в состоянии выйти
Я работаю над инструментом, в котором функция выхода из системы не работает. У меня есть страница индекса, где я включаю файл конфигурации с помощью session_start().
После этого я добавляю страницу, на которой у меня есть баннер и кнопка входа и выхода. Когда я нажимаю на одну из этих кнопок, я перехожу на другую страницу connec.php
Я разрушаю или создаю связь.
С подключением все в порядке, я инициализирую все переменные сеанса. Для отключения я делаю:
if(isset($_POST['logout'])){
$_SESSION = array ();
session_unset();
session_destroy();
$_POST['logout']=1;
//gotopage($GLOBALS["GLOBAL_URL_PSISITE"]);
header("Location: ../index.php");
Я все еще на связи, и когда я делаю print_r($_SESSION)
всегда существовать.
3 ответа
Прежде всего, убедитесь, что на странице есть session_start()
определяется в самом верху, прежде чем что-то делать на странице, во-вторых, убедитесь, что ваше поле ввода обернуто form
стихия и ваш submit button
имеет name=logout
и ваша форма установлена на method=post
<form method="post" action="your_logout_script_page.php">
<input type="submit" name="logout" />
</form>
Вы захотите что-то подобное в вашем файле
<?php
session_start();
if (isset($_POST['logout'])) {
$_SESSION = array();
if (ini_get("session.use_cookies")) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy();
//$_POST['logout']=1; // this won't do anything since you're redirecting on the next line.
header("Location: ../index.php");
exit;
}
?>
Чтобы правильно "уничтожить" запущенный сеанс, вы должны сначала сообщить PHP, какой сеанс вы пытаетесь уничтожить.
Если у вашего сеанса нет пользовательского / ручного имени (в большинстве случаев), вы должны сначала
session_start();
прежде чем вы можете позвонить
session_destroy();
... Так:
<?php session_start(); session_destroy(); ?>