Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не закрывается сессия
 
 автор: victoor   (24.09.2007 в 18:31)   письмо автору
 
 

Здравствуйте!
Возникла такая проблема:
на сайте есть система авторизации пользователей.
вход происходит нормально.
выход на домашнем компьютере и на одном хостинге происходит тоже нормально, а на другом хостинге уничтожения сессии не происходит...
вот код для убийства сессии:
function my_session_destroy()
{
foreach ($_SESSION as $index => $val)
   {
      $_SESSION[$index]=False;
      unset($_SESSION[$index]);
      session_unregister($index);
      echo ("Переменная сессии ".$index." убита!<br />");
      # Дополнить начальной настройкой
   };
session_destroy();
echo ("Сессия убита!!! <br />");
};

причем эта функция явно отрабатывает, т.к. сообщения об убийстве переменных и сессии выводятся...
на этот заход на страничку сессия убивается (видно по отсутствию элементов, требующих авторизации), но при переходе по какой либо ссылке в меню, сессия снова востанавливается, причем в значениях, бывших до ее уничтожения (как будто пользователь не выходил).

рабочий вариант этой странички: http://wolf-clan.litehosting.ru логин Тестер , пароль тест

Как исправить функцию, чтобы сессию всеже убивало?
Заранее спасибо за помощь..

   
 
 автор: bronenos   (24.09.2007 в 23:30)   письмо автору
 
   для: victoor   (24.09.2007 в 18:31)
 

вместо foreach = session_unset()

   
 
 автор: Валерий   (25.09.2007 в 00:10)   письмо автору
 
   для: bronenos   (24.09.2007 в 23:30)
 


<?php
function my_session_destroy()
{
$_SESSION = array();
session_destroy();
}
?>

   
 
 автор: victoor   (25.09.2007 в 00:47)   письмо автору
 
   для: victoor   (24.09.2007 в 18:31)
 

Загадочны настройки сервера...
Если не делать session_destroy(), а просто все переменные сессии каким-либо образом удалить (любой из 3-х вышеперечисленных вариантов), то все нормально...
А если после удаления переменных (тоже любой вариант) сделать session_destroy(), то на следующем заходе сессия востанавливается, как будто я не удалял переменные сессии.

И почему так?

   
 
 автор: mihdan   (25.09.2007 в 01:20)   письмо автору
 
   для: victoor   (25.09.2007 в 00:47)
 

Сессии в большинстве своем храняться в куках(если не перенастроить), а куки - в браузере(точнее в фале на локальном компьютере), поэтому из-за КЭШирования ваших страниц браузером может произойти такая штука. А браузер не ИЕ случаем, он часто этим грешит.

   
 
 автор: Ralph   (25.09.2007 в 07:59)   письмо автору
 
   для: mihdan   (25.09.2007 в 01:20)
 

Сессии НИКОГДА не хранятся в куках

   
 
 автор: bronenos   (25.09.2007 в 09:39)   письмо автору
 
   для: mihdan   (25.09.2007 в 01:20)
 

В куках хранится лишь идентификатор, если хранится что-нибудь

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования