Никита К.
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() все равно ошибку вызывает, поэтому я его просто убрал =) И без него всё норм.