Другие языки программирования и технологии

Авторизация php

В общем написана регистрация, написана проверка авторизации, а вот с сессиями и куками я попал в ступор. Допустим я в сессию закидываю id пользователя, собственно говоря сделал так чтоб после входа этот id висел у него в сессии, не могу понять на сколько долго сохраняется эта сессия и собственно чувствую что это не всё что мне надо сделать при авторизации с учётом того что мне нужны в будующем функции "кто в онлайне" и собственно "Онлайн/Оффлайн"...подскажите в какую сторону мыслить?
пользователь закрывает браузер и сессия закрывается, поэтому кое-какие данные надо хранить в куках.. . какой-то ключ, который бы идентифицировал его при следующем входе на сайт.. . также если браузер не закрыт, но 30 минут никакой активности - сессия тоже закрывается (зависит конечно от настроек сервера)
по поводу онлайн/оффлайн ситуация такая - сервер не может знать как долго пользователь сидит за страницей, поэтому делают так 1) создают автообновляющийся фрейм, в котором в базу ложиться текущее время для пользователя (последний визит) . если время в базе различается на временем обновления фрейма, то пользователь не в сети 2) предполагать что поьзователь сидит на каждой странице 5 минут и при обновлении каждой страницы обновлять время. еси разница больше 5 минут, то пользователь не в сети. этот способ не точный, но не приодится часто дергать базу данных
Владимир П
Владимир П
34 293
Лучший ответ
Владимир Лучшев Хоть я и не поддерживаю низкоуровневый кодинг, когда дело не касается именно получения навыков, но тут плюсую. Всегда приятно видеть человека, который действительно разбирается в чем-то и дает четкий ответ.

В свое время я на джаваскрипте на чистом писал и смотрел на многих с усмешкой: "ха, они все жкваери юзают, плагины какие-то...а мой код полностью мне подконтролен, к тому же оптимизирован". А потом внезапно понял, что велосипед, написанный за день в 5-й раз, - это не повод для гордости, а извращение. С тех пор я изучил сотни плагинов, разобрался, как они работают, и освоил жкваери. И стал писать то, на что раньше требовалось 5 часов, за полчаса. Чем высокоуровневее инструмент, тем больше требуется знаний, чтобы его гибко использовать, но при этом тем меньше тратится времени на работу.
Сергей Сергеев фрейм для поддержания сессии прошлый век!
вы не сможете с помощью сессии следить кто онлайн и кто оффлайн!
лучший способ добавить в табличку в которой будете хранить id сессии клиента, дату входа и id юзера, при каждой перезагрузке страницы нужно дату!
если юзер вошел на сайт то в поле id юзера вписать id вошедшего юзера!
что бы вычислить кто онлайн придется сделать выборку текущая дата минус например 15 минут! все кто попадет в выборку будет онлайн (у кого в поле userid будет 0 это гости! остальные авторизированные! )
этот же id сессии записать в куку! при открытии сайта проверять или есть кука, если есть то сбегать в базу и проверить или есть запись с такой сессией. . если есть то берете id и производите для него авторизацию!
Сергей Сергеев
Сергей Сергеев
41 003
Неизвестно Неизвестно вроде бы неплохой способ, но мне кажется что немного нецелесообразен в случае если на сайте будет много гостей - тогда таблица с сессиями будет расти очень сильно и будет куча ненужных записей... может в этом и ничего особенного, но лично я сторонник хранения только полезной информации
По существу не отвечу, но, возможно, спрошу важную вещь, которая сэкономит время: а зачем писать велосипед, который давно уже написали? В любой CMS это есть.
Сергей Хан
Сергей Хан
1 269
Владимир П cms - не всегда выход... если пишется корпоративный сайт или сайт, исходники которого не должны быть видны стороннему пользователю или необходимо реализовать много вещей, которые должны быть заточенны под определенную задачу, а для cms данных расширений / модулей нету