Саныч пишет:К тому же, что вы так этих двух запросов к базе при удалении пользователя боитесь, что готовы на каждый запрос дергать файл и искать в нем айдишник?
Не я боюсь, а ты. Я бы вообще такой фигней не страдала, по тому, так считаю, что хранение данных в сессии, не факт, что даст прирост производительности. А вот проблем добавит.
Саныч пишет:Передаем только userID. Получили, зачитали sessID, запустили сессию, очистили ее, удалили юзера из БД. Два запроса, где вы третий выкопали, я не понимаю.
А из самой базы кто удалять/(помечать, что удаленный) будет?
Саныч пишет:Так что ж вы с нами, рукожопыми, тут возитесь, а?!
Да жалко мне вас рукожопых просто.
Hapson пишет:Товарищи, ну тема так и не раскрыта. Как поддерживать авторизацию и корректно удалять/банить пользователя? При этом не трогая БД при простой навигации по сайту.
Ну ты определись. При простой навигации, считай что это гость, и проблемы не будет.
А вот когда пользователь запросит что-то секретное, вот тогда и дерни БД, и проверь его статус. Не бойся ты этих запросов. И при "простой навигации" сессии - это зло.
Hapson пишет:При следующем входе обновляем поле session. Если пользователь входит по куке, то делаем тоже самое - обновляем session_id в базе.
Что значит "входит по куке"? Типа ты пользователю вешаешь куку позволяющую его опознать в твоей БД, как это сделано на этом форуме например?
То есть он входит, кука пользователя есть, а куки сессии нет, я правильно поняла?
Тогда, да, ты прав. Подумай еще о такой фигне, что пользователь одновременно зашел с сразу с браузеров/с различных профилей. Будет две сессии на одного пользователя.
Hapson пишет:Неужели нет иного способа реализации статуса кроме записи и сравнения времени? Ведь это опять запрос к БД при каждом запуске скрипта.
А как ты еще определишь? Есть время запроса чего-либо пользователем. Что дальше делает пользователь, без телепата ты никак не узнаешь. По этому и единственный вариант, хранить время последнего действия. И если оно меньше определенного значения, то считаешь, что пользователь в онлане, хотя он может давно и компьютер то выключил и мирно пьет пиво у подъезда.
Hapson пишет:В базу пишется session_id, в базу пишутся сессионные данные... так? Зачем? А как удалять данные при выходе пользователя, если он просто закрыл окно?
Никак. Или писать собственный сборщик мусора. Но для этого как минимум Shell нужен.
Да и не стоит тебе этим заморачиваться.
(Отредактировано автором: 20 Августа, 2013 - 20:57:00)