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]   

> Без описания
emslt
Отправлено: 24 Апреля, 2011 - 17:16:33
Post Id



Новичок


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


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




Ищу хоть какую нибудь информацию о сессиях в БД.
У кого нибудь есть какие то готовые решения? Или хотя бы нормальные подсказки.
Во всех статьях копируют одно и тоже, написанное зарубежными профи, а хоть кто нибудь сделал что нибудь свое?
http://leopard[dot]in[dot]ua/2008/09/15/[dot][dot][dot]hp-v-baze-dannyx
 
 Top
molchun201
Отправлено: 24 Апреля, 2011 - 19:39:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


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




а зачем их там сохранять собсно? Хм
сессия есть массив, массив нада сеарилизовать, полученое записывать, потом извлекать, ансиаризовывать и выводить Однако Улыбка


-----
Обрамляйте код тегами и читайте
 
 Top
emslt
Отправлено: 24 Апреля, 2011 - 20:47:51
Post Id



Новичок


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


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




Всё, разобрался.
Для записи идентификатора сессии в БД, а так же сопутствующей информации вот начальные исходники кода:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         /*
  3.         Author : http://www.tuxradar.com/practicalphp/10/3/7
  4.         */
  5.  
  6.     mysql_connect("LOCALHOST", "LOGIN", "PASSWORD");
  7.     mysql_select_db("YOUR_DB_NAME");
  8.    
  9.     function sess_open($sess_path, $sess_name) {
  10.         return true;
  11.     }
  12.  
  13.     function sess_close() {
  14.         return true;
  15.     }
  16.  
  17.     function sess_read($sess_id) {
  18.         $result = mysql_query("SELECT Data FROM sessions WHERE SessionID = '$sess_id';");
  19.         if (!mysql_num_rows($result)) {
  20.             $CurrentTime = time();
  21.             mysql_query("INSERT INTO sessions (SessionID, DateTouched) VALUES ('$sess_id', $CurrentTime);");
  22.             return '';
  23.         } else {
  24.             $CurrentTime = time();
  25.             extract(mysql_fetch_array($result), EXTR_PREFIX_ALL, 'sess');
  26.             mysql_query("UPDATE sessions SET DateTouched = $CurrentTime WHERE SessionID = '$sess_id';");
  27.             return $sess_Data;
  28.         }
  29.     }
  30.  
  31.     function sess_write($sess_id, $data) {
  32.         $CurrentTime = time();
  33.         mysql_query("UPDATE sessions SET Data = '$data', DateTouched = $CurrentTime WHERE SessionID = '$sess_id';");
  34.         return true;
  35.     }
  36.  
  37.     function sess_destroy($sess_id) {
  38.         mysql_query("DELETE FROM sessions WHERE SessionID = '$sess_id';");
  39.         return true;
  40.     }
  41.  
  42.     function sess_gc($sess_maxlifetime) {
  43.         $CurrentTime = time();
  44.         mysql_query("DELETE FROM sessions WHERE DateTouched + $sess_maxlifetime < $CurrentTime;");
  45.         return true;
  46.     }
  47.  
  48.     session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
  49.     session_start();
  50.        
  51.     $_SESSION['foo'] = "TEST TEXT 1";
  52.     $_SESSION['baz'] = "TEST TEXT 2";
  53.  
  54. ?>
 
 Top
OrmaJever
Отправлено: 24 Апреля, 2011 - 21:22:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




emslt пишет:
PHP:
скопировать код в буфер обмена
  1.     function sess_open($sess_path, $sess_name) {
  2.         return true;
  3.     }
  4.  
  5.     function sess_close() {
  6.         return true;
  7.     }

эти функции походу здесь главные, без них ничё работать не будет Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 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