Никита К.
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'ить сессию и куки. На этой странице - пустые становятся. Переходим на следующую - живы. И в браузере есть.

В чем может быть ошибка? Подскажите, пожалуйста.
Александр Ж.
575 повідомлень
#15 років тому
А прямо переменные $_SESSION делать 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, коннектиться кбазе и проверять на достоверность...
Ерунда какая то
Максим Ф.
3195 повідомлень
#15 років тому
Opera?
Никита К.
1594 повідомлення
#15 років тому
Она самая. Всё, разобрался, сделал... =) session_start() не в том месте написал
Виталий Я.
659 повідомлень
#15 років тому
Аффтар жжот ! session_destroy использовать надо , unset просто переданную функции переменную уничтожит . У вас ансет пустой вообще .
Никита К.
1594 повідомлення
#15 років тому
Xazzzi, session_destroy() у меня вызывает ошибку
Роман Р.
132 повідомлення
#15 років тому
Цитата ("Anexroid"):
Xazzzi, session_destroy() у меня вызывает ошибку

Цитата ("Anexroid"):
session_start() не в том месте написал

session_destroy из за session_start ? ))))
Никита К.
1594 повідомлення
#15 років тому
Не знаю. Но session_start() работает, сессия нормально уничтожается через session_unset(), а session_destroy() все равно ошибку вызывает, поэтому я его просто убрал =) И без него всё норм.