Запутался в сессиях, распутайте меня?

Авторизуюсь на сайте показывает:
$_SESSION["UserName"] // имя сессии есть допустим ivan
$_COOKIE["Test"] // имя кук есть допустим mysite.com

Прохожу через страницу выхода (вопрос: я её правильно сделал?)
// Уничтожаем сессию
if(isset($_SESSION["UserName"])){
    session_destroy();
}
// Удаляем Cookie
SetCookie("Test","");

Теперь:
var_dump($_SESSION);
var_dump($_COOKIE);

Первый показывает Undefined variable
Второй показывает:
array(1) {
  ["PHPSESSID"]=>
  string(26) "ra7emp6j6vp6o85oqlclefi315"

Я же вышел, что за PHPSESSID и почему он остаётся? Тут расшифровки нет никакой php.net/manual/ru/reserved.variables.cookies.php
  • Вопрос задан
  • 351 просмотр
Решения вопроса 2
t-alexashka
@t-alexashka
Сразу пишу legacy код
PHPSESSID это стандартная кука - ключ, при условии что у вас где-то в коде выше есть session_start();

session_destroy вы сделали, она удалилась, но ключ на нее в куках остался. либо удалите ее как и test либо проверьте не вызывается у вас где-то там( чего вы тут не показали) session_start
Ответ написан
Stalker_RED
@Stalker_RED
$_SESSION["UserName"] // имя сессии есть допустим ivan
Нет, это не имя сессии, а какое-то значение с ключом "UserName"
Имя сессии по умолчанию равно "PHPSESSID", и меняется оно при помощи session_name() или в конфиге

$_COOKIE["Test"] // имя кук есть допустим mysite.com
Непонятно что вы имеете в виду. Это обращение к какой-то куке с именем "Test". Из вашего кода непонятно откуда она берется.

// Уничтожаем сессию
// Удаляем Cookie
...
var_dump($_SESSION);
var_dump($_COOKIE);

Первый показывает Undefined variable
Всё правильно, вы же сделали session_destroy

Второй показывает:
array(1) {
["PHPSESSID"]=>
string(26) "ra7emp6j6vp6o85oqlclefi315"
И тоже всё правильно, вы же не уничтожали куку "PHPSESSID".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы