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 :: Xранение сессий в БД...
Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
Собственно уже почитал литературу, попросматривал примеры и начал писать свой класс... Для себя пока вижу только плюсы хранения сессий в бд, но хотелось бы узнать общее мнение... И так сессии-files или сессии в БД....,кто что посветует?
valenok
Отправлено: 14 Января, 2009 - 08:31:57
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Разумеется предпочтение отдаётся уже встроенному механизму в языке.
Сессии в базе это пародия на сессии если по каким то причинам в действительности их использовать нельзя.
----- Truly yours, Sasha.
Stierus
Отправлено: 14 Января, 2009 - 08:46:26
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Если есть какие-то причины переносить сессии в базу - напишите их, если нет - нафигн это нужно ?
CodeWarrior
Отправлено: 19 Января, 2009 - 13:17:26
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009 Откуда: Албания
Помог: 0 раз(а)
Stierus пишет:
Если есть какие-то причины переносить сессии в базу - напишите их, если нет - нафигн это нужно ?
Это в основном нужно для форумов. Для того чтобы внизу было написано: эту страницу просматривают: и список логинов посетителей... Других причин я не знаю.
Stierus
Отправлено: 19 Января, 2009 - 13:19:30
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Цитата:
Это в основном нужно для форумов. Для того чтобы внизу было написано: эту страницу просматривают: и список логинов посетителей
А как связаны, где хранить сессии и эта незаурядная надпись на форуме ?
Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
В моем случае есть небольшой проектик (работает в рамках предприятия-движение договоров, оплат и мн.др.)использующий обычные сессии; появилась потребность в сохранении данных сессии.... вот и решил запихнуть сессии в бд, дабы не переделывать весь проект...
Stierus
Отправлено: 19 Января, 2009 - 15:09:29
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Sanek, советую переопределить функции сбора мусора (если нужно, удаления и изменения сессионных данных). Хранить архив сессий с активными (тоесть отключить сборку мусора вообще) - не самая хорошая идея, производительность сильно понизится. Таблица будет разрастаться как на дрожжах , выборка по ней будет всё медленнее и медленнее, хотя на практике информация архивная вам будет требоваться в тысячи раз реже, чем те копейки (по отношению к общему числу записей), которые пользователю будут требоваться с каждым запросом скрипта. Эту информацию обязательно надо разделять (архив и текущие сессии)
Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
я наверно полохо обьяснил свою задумку.... stierus я не собираюсь xранить архив сессий БД...
Для хранения сессий планировал создать таблицу типа:
DROP TABLE IF EXISTS `session`;
CREATE TABLE IF NOT EXISTS `session` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`session_id` varchar(32) NOT NULL DEFAULT '',
`last_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', /* последние обновления */
`session_data` TEXT NOT NULL, /* Данные, хранящиеся в сессии */.......
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Цитата:
появилась потребность в сохранении данных сессии
Я не думаю, что ты имел ввиду сохранение на день. Тоесть ты перенёс все сессии в базу данных и не чистишь их, что бы они сохранялись, правильно понимаю ?
Sanek
Отправлено: 19 Января, 2009 - 16:07:36
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
Stierus пишет:
Я не думаю, что ты имел ввиду сохранение на день
Не только на день, но и на более длительный срок.... колочество записей в таблице будет (пишу будет потому что большая часть этой задумки пока в голове...) равна кол-ву пользователей; при авторизациии пользователя стартует его сессия...
CodeWarrior
Отправлено: 19 Января, 2009 - 16:47:44
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009 Откуда: Албания
Помог: 0 раз(а)
Stierus пишет:
А как связаны, где хранить сессии и эта незаурядная надпись на форуме ?
При переходе со страницы на страницу в базу заносится id страницы и темы где вы находитесь. Скрипт делает выборку в таблице сессий на наличие активных сессий (извиняюсь за тафталогию) и внизу страницы темы форума показывает тех кто сейчас сидит под соответствующими id... Как-то так. Я форум еще не писал, но механизм отдаленно представляю и слышал что если вы хотите реалезовать такой механизм, то нужно хранить сессии в базе. Собсна, об этом можно прочитать в инете... Например, введя в гугле фразу "Хранение сессий в базе данных".
Stierus
Отправлено: 19 Января, 2009 - 17:02:09
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Sanek, вы представляете примерно механизм работы сессий ?
CodeWarrior,
Цитата:
Скрипт делает выборку в таблице сессий на наличие активных сессий
, как вы себе это представляете ? (все форумы ведут статистику онлайн в поле базы данных, никакого отношения к сессиям это не имеет)
CodeWarrior
Отправлено: 19 Января, 2009 - 17:48:08
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009 Откуда: Албания
Помог: 0 раз(а)
Stierus пишет:
как вы себе это представляете ? (все форумы ведут статистику онлайн в поле базы данных, никакого отношения к сессиям это не имеет)
Читайте:
Цитата:
Как-то так. Я форум еще не писал, но механизм отдаленно представляю и слышал что если вы хотите реалезовать такой механизм, то нужно хранить сессии в базе.
Вот и все.
Гость
Отправлено: 20 Января, 2009 - 14:53:59
УДАЛЁН
Цитата:
Все форумы ведут статистику онлайн в поле базы данных, никакого отношения к сессиям это не имеет
Какой форум какой механизм Ведь гораздо более удобно сделать выборку из базы и по текущим сессиям узнать кто онлайн
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Напишите код и увидите, на сколько "удобнее". Сессия создаётся (привязывается, если создана раньше) при каждом вызове session_start() и серверу всё равно, откуда вызвана эта функия, из блогов, новостей, форума или где-то ещё на этом сервере - сессии у них общие. Подсчитать количество таких сессий - не есть подсчитать количество людей онлайн на форуме, добавьте к этому рандом в механизме сбора мусора и поймёте, что предлагаете бред.
Совсем другой разговор, если речь не о обычных сессиях php, а неких механизмах, реализованых в логике приложения.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.