Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Работа с сессиями

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не могу понять в чем прикол
Uchenik
Отправлено: 23 Февраля, 2012 - 08:28:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 187
Дата рег-ции: Авг. 2011  


Помог: 1 раз(а)




Добрый день.
Вопрос может показаться странным, но мне интересно почему так:
Я изменил место хранения сессий
PHP:
скопировать код в буфер обмена
  1. ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'].'/system/sessions/');

Теперь возникает непонятная мне ситуация, когда пользователь заходит на сайт, в папке system/sessions появляется файл sess_{$id_session} это нормально.

1.почему в папке tmp, куда раньше сохранялись сессии создаётся ещё 1 файл с другим именем?

Дальше какой-то бред:
Я хочу убить сессию пользователя, для этого посылаю команду серверу уничтожить файл в моей директории
PHP:
скопировать код в буфер обмена
  1. $_SERVER['DOCUMENT_ROOT'].'/system/sessions/

я не трогаю папку tmp. После удаления этого файла пользователя выкидывает (Так и планируется), но
2.почему когда он снова авторизуется ему возвращается тот же самый id сессии?
3.Почему файл восстанавливается, а не создаётся новый?
4.И почему в папке tmp всё-равно появляются файлы?


В БД есть таблица, которая хранит в себе данные о сессиях.
CODE (SQL):
скопировать код в буфер обмена
  1. `id_session` tinytext COLLATE utf8_unicode_ci NOT NULL,
  2.   `putdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  3.   `user` tinytext COLLATE utf8_unicode_ci NOT NULL,
  4.   `page` text COLLATE utf8_unicode_ci NOT NULL

А работа с этой таблицей выполняется скриптом
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM ".$db_Sessions."
  2.            WHERE id_session = '$id_session'";
  3.   $ses = mysql_query($query);
  4.   if(!$ses) exit("Ошибка в запросе к таблице сессий");
  5.   if(mysql_num_rows($ses)>0)
  6.   {
  7.     $query = "UPDATE ".$db_Sessions." SET putdate = NOW(),
  8.                                 user = '$_SESSION[SN]', page='$_SESSION[page]'
  9.              WHERE id_session = '$id_session'";
  10.     mysql_query($query);
  11.   }
  12.   else
  13.   {
  14.     $query = "INSERT INTO ".$db_Sessions."
  15.              VALUES('$id_session', NOW(), '$_SESSION[SN]','$_SESSION[page]')";
  16.     if(!mysql_query($query))
  17.     {
  18.       exit("Ошибка при добавлении пользователя"; );
  19.     }
  20.   }
  21.   $query = "DELETE FROM ".$db_Sessions."
  22.            WHERE putdate < NOW() -  INTERVAL '20' MINUTE";
  23.   mysql_query($query);

(Отредактировано автором: 23 Февраля, 2012 - 08:37:45)

 
 Top
PATCH
Отправлено: 23 Февраля, 2012 - 11:30:31
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




а теперь скрипт как вы удаляете сессию)
 
 Top
Uchenik
Отправлено: 23 Февраля, 2012 - 13:47:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 187
Дата рег-ции: Авг. 2011  


Помог: 1 раз(а)




=)
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql=mysql_query("SELECT * FROM $db_Sessions WHERE user='$_SESSION[SN]'");
  3. $res=mysql_fetch_assoc($sql);
  4. if (empty($res['id_session'])){

(Отредактировано автором: 23 Февраля, 2012 - 14:26:13)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB