"Живучая" сессия
1594 сообщения
#15 лет назад
В общем, последовательность действий скрипта примерно следующая:session_start();
$_SESSION = 'login';
$_SESSION = 'pass';
if($remember) {
setcookie("login", 'login', time() + 86400);
setcookie("pass", 'pass', time() + 86400);
}
... скрипт выполняет какие то действия ...
if($logout) {
session_unset();
setcookie("login", "", time() - 3600);
setcookie("pass", "", time() - 3600);
}
Перехожу на другую страницу оттуда - cookie и данные в сессии живы. Почему?.. Я уже всю голову себе поломал. Пробовал и unset'ить сессию и куки. На этой странице - пустые становятся. Переходим на следующую - живы. И в браузере есть.
В чем может быть ошибка? Подскажите, пожалуйста.
649 сообщений
#15 лет назад
Вы куки ставите не на домен, а на каждую страницу.Когда удаляете, соответственно, тоже на одной странице.
Попробуйте вот так:
setcookie("login", 'login', time() + 86400, '/', '.домен'

setcookie("login", '', time() - 3600, '/', '.домен'

1594 сообщения
#15 лет назад
Sassoft, пробовал. безрезультатно. Делал так:
foreach($_SESSION as $key => $value)
{
unset($_SESSION);
}
print_r($_SESSION);
Получал: "Array()"
Догадайтесь что происходило на следующей странице? Правильно, они появлялись снова.
penguin, ну, я написал не так маленько. На самом деле они у меня так создаются:
setcookie("login", 'login', time() + 86400, $_SERVER, $_SERVER);
1594 сообщения
#15 лет назад
Просто здесь весь код копипастить не хочется.Сессия потом восстанавливается из Cookie (мы ж нажали "Запомнить нас"

Но прикол в том, что logout должен убивать cookie. А они не убиваются.
1594 сообщения
#15 лет назад
Сейчас добился интереснейшего эффекта: Просмотр Cookie в браузере - единственное, что там хранится - PHPSESSION. Ни логин ни чего то другого.
При этом "Вы вошли как ..." отображается. При том, что данные должны браться из cookie, коннектиться кбазе и проверять на достоверность...
Ерунда какая то
1594 сообщения
#15 лет назад
Она самая. Всё, разобрался, сделал... =) session_start() не в том месте написал
659 сообщений
#15 лет назад
Аффтар жжот ! session_destroy использовать надо , unset просто переданную функции переменную уничтожит . У вас ансет пустой вообще .
132 сообщения
#15 лет назад
Цитата ("Anexroid"):Xazzzi, session_destroy() у меня вызывает ошибку
Цитата ("Anexroid"):
session_start() не в том месте написал
session_destroy из за session_start ? ))))