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

Форум PHP

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

 

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

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

тема: запутался с сессиями
 
 автор: kolt   (06.12.2005 в 15:34)   письмо автору
 
 

есть идеи сделать авторизацию через сессии следующим образом:
после проверки логина и пароля в mysql, если они верны передовать какую-нибудь перемееную $enter==1 коду-обработчику, который будет выводить (если $enter==1) дальнейшее необходимое содержание сайта или отсылать $enter==0 (если логин и пароль не правильные) - тот-же обработчик будет выводить сообщение ошибки. а также, если вводится адрес обработчика из адресной строки (типа domain.ru/enter.php) выводить ошибку и предложение авторизоваться через форму....
может есть более простой и правильный способ реализации этой задачи??
или делать так:
при правильности логина и пароля (проверка через MySQL) заносить SID и USER ID в таблицу. и в дальнейшем на каждой странице устраивать опрос сравнения текущего SID и имеющихся данных в таблице SID и USER ID. но тут возникает вопрос что есть USER ID и как будет вести себя сессия если я, например, пытаюсь попасть из адресной строки (напрямую вводя адрес), а также как мне удалять данные из таблицы когда пользователь закрывает сессию (браузер)????
помогите, плиз, запутался.

   
 
 автор: cheops   (06.12.2005 в 20:05)   письмо автору
 
   для: kolt   (06.12.2005 в 15:34)
 

1) Хм... а чем предложенный способ не нравится?
2) А зачем вам лишняя таблица и как у вас передаётся SID, через cookie или GET-параметры?

   
 
 автор: kolt   (06.12.2005 в 22:08)   письмо автору
 
   для: cheops   (06.12.2005 в 20:05)
 

в общем, кое-как разобрался и навёл порядок в голове.
нужно авторизацию пользоваетелей через MySQL сделать, дальше на странице админа простейшую текущую статистику показывать - какие пользователи отлогинились.
насколько, понимаю надо завести таблицу sessions где будут sid и user_id (который, является id пользователя в таблице паролей) и таким образом понимать кто вошёл. но как быть если он вышел не через кнопку LogOut? надо каким-то образом его удалить из таблицы sessions??
движок входа и проверки связки sid и user_id написал (криво, но вроде работает), а вот как быть с отслеживанием жизни данных в sessions ума не приложу?

   
 
 автор: cheops   (07.12.2005 в 13:33)   письмо автору
 
   для: kolt   (06.12.2005 в 22:08)
 

А так вы просто в таблицу добавьте время последнего посещения сайта, которое обновляйте при каждом обращении посетителя к страницам сайта. Как только разница между текущим временем и временем последнего посещения составит более 10 (или 20 - в зависимости от тематики) минут - пользователь ушёл - его можно удалять. А скрипт проверки привяжите либо к cron, либо к какой-нибудь посещаемой странице.

   
 
 автор: kolt   (07.12.2005 в 15:10)   письмо автору
 
   для: cheops   (07.12.2005 в 13:33)
 

Ага, спасибо!

Только вот еще вопросик:

>А скрипт проверки привяжите либо к cron,
>либо к какой-нибудь посещаемой странице.

В смысле посещаемой странице и что-есть cron??

   
 
 автор: cheops   (08.12.2005 в 01:31)   письмо автору
 
   для: kolt   (07.12.2005 в 15:10)
 

>В смысле посещаемой странице
Ну чтобы скрипт запускался время от времени...

> и что-есть cron??
cron - это UNIX-демон, позволяющий запускать скрипты по расписанию, подробнее можно почитать в темах по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4321
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4032
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3861
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4459

   
Rambler's Top100
вверх

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