Не в состоянии выйти

Я работаю над инструментом, в котором функция выхода из системы не работает. У меня есть страница индекса, где я включаю файл конфигурации с помощью 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(); ?>
Другие вопросы по тегам