PHP - почему я не могу избавиться от этого cookie с идентификатором сеанса?

Я пытаюсь устранить неполадки функции выхода из веб-приложения. Когда вы вошли в систему, приложение имеет несколько файлов cookie для своего домена. Вот текущая процедура выхода:

  • Вы щелкаете ссылку, которая отправляет вас на страницу выхода
  • На странице выхода запускается функция, которая вызывает session_destroy () , а также просматривает все файлы cookie для домен и устанавливает срок их действия в прошлом (см. код ниже)
  • Затем страница выхода перенаправляет на страницу входа, которая представляет собой обычный HTML.

В конце этого процесса все остальные файлы cookie сбрасываются, но файл cookie PHPSESSID остается там, имеет то же значение, и срок его действия по-прежнему истекает в конце сеанса.

Что мне здесь не хватает?

Вот функция выхода из системы, о которой я упоминал выше:

function log_out_current_user() {

        // Destroy the session
        if (isset($_SESSION)) {
            session_destroy();
        }

        // Expire all of the user's cookies for this domain:
        // give them a blank value and set them to expire
        // in the past
        if (isset($_SERVER['HTTP_COOKIE'])) {
            $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
            foreach($cookies as $cookie) {
                $parts = explode('=', $cookie);
                $name = trim($parts[0]);
                setcookie($name, '', time()-1000);
                setcookie($name, '', time()-1000, '/');
            }
            // Explicitly unset this cookie - shouldn't be redundant,
            // but it doesn't hurt to try
            setcookie('PHPSESSID', '', time()-1000);
        }

    }
16
задан Nathan Long 21 October 2010 в 15:50
поделиться