Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Фиксация последнего визита |
Автор: WebS 7.11.2009, 12:43 |
На форумах часто сохраяют дату последнего визита.., и помечают темы с новыми сообщениями... Вопрос: Как сохранить дату последнего посещения? С учётом того что нужно использовать всё время сессии, а не затирать текщим посещением. |
Автор: Ипатьев 7.11.2009, 13:10 |
Не визита, наерное, имеется в виду, а клика. Записать время в базу |
Автор: WebS 7.11.2009, 17:31 | ||
![]() |
Автор: ЧиоЧигас 7.11.2009, 17:32 | ||
Проще всего отправить кук юзеру с датой его последнего визита, а затем ее считать. Чтобы при каждой загрузке страницы не отправлять кук, а только при ее первом показе, можно ввести переменную $_SESSION["vizit"]. Таким образом, кук будет посылаться только если юзер закрыл окна браузера затем открыл его и повторно перешел к вам на страницу.(или по тайм ауту) Вот мой вариант:
|
Автор: Ипатьев 7.11.2009, 17:39 |
WebS, ну расскажите мне, что вы имеете в виду под словом "визит". Я с большим интересом послушаю. ЧиоЧигас, вы правда думаете, что именно так форумы и делают? |
Автор: ЧиоЧигас 7.11.2009, 17:58 | ||
Я написал проще всего. Я вам напишу, как я вижу работу форума, а вы меня поправьте, если что не так. Каждый раз при заходе юзера на форум производится попытка считать кук, назовем его $_COOKIE["id"]. Этот кук представляет собой уникальный идентификатор. Если кук считан, ищется в БД данные о юзере по этому id. Потом, в целях безопасности, отправляется $_COOKIE["id"] уже с новым значением, так же обновляются данные о юзере в БД, дата визита, id. Если кук $_COOKIE["id"] не считан, значит юзер не зареген или давно уже не бывал на форуме. Как-то так. |
Автор: Ипатьев 7.11.2009, 18:10 |
Это все не имеет отношения к вопросу. Здесь описана банальная авторизация, хотя тоже довольно кустарная. Скажу честно. Я думаю, что не обладая практическим опытом в реализации подобной функции или теоретическим опытом в веб-строительстве вообще, вряд ли удастся придумать работающий вариант. Конкретно в вашем варианте выше есть две принципиальных ошибки, не считая более мелких. |
Автор: ЧиоЧигас 7.11.2009, 18:22 | ||||
Ну знаете, не боги горшки лепят. Хотелось бы еще мнения других участников форума услышать.
Дайте ссылку, пример или кратко опишите суть вашего решения. Как то размыто высказываетесь (без обид) .
Какие? Я же просил поправить если что не так. |
Автор: Ипатьев 7.11.2009, 18:36 |
Ну как сказать. Я не думаю, что у вас получится слепить и обжечь глиняный горшок ![]() Это выражение не означает, что любое дело может выполнить сходу любой неуч. Оно наоборот, подтверждает мои слова. Обжечь горшок - сложная наука, но неустанный труд и приобретаемый при этом опыт помогут её осилить. |
Автор: ЧиоЧигас 7.11.2009, 18:50 |
Ладно про горшки, вы лучше про ошибки скажите. Мне действительно интерестно. |
Автор: Ипатьев 7.11.2009, 19:06 |
Я хочу сначала услышать автора топика. |
Автор: capitan 7.11.2009, 21:39 |
WebS, на форумах сохраняют последнюю дату не визита, а входа. Думаю теперь понятно, когда в базу летит дата? |
Автор: WebS 11.11.2009, 19:31 |
Решил, оч просто ![]() При каждом визите время в бд обновляется. А фиксация старого значения производиться через сессию. Т.е если переменная сессии существует, то она не меняется, если её нет - сохраняет значение предпоследнего визита, которое берется из базы. Работа с сессией идёт до обновления базы. В процессе сессии в независимости от обновлений страниц "время последнего визита" не меняется ![]() |
Автор: Ипатьев 11.11.2009, 21:39 |
ЧиоЧигас, одна ошибка в том, что на куках это сделать в принципе невозможно. Человек может заходить на сайт не с одного компьютера... А вторую я забыл уже ![]() наверное то, что не сохраняется время клика. |
Автор: MoLeX 12.11.2009, 06:36 |
при заходе на форум, скрипт проверяет авторизирован ты или нет. сложно ли добавить Update-запрос если пользователь авторизирован? |
Автор: nezabor 13.11.2009, 00:02 |
насколько я помню на форуме отображается последняя авторизация |