В принципе, была мысль, что можно добавить дополнительное поле в форму, заполнять только авторизованным, и внутри проверять, если заполнено, а пользователь гость, значит можно предположить, что его разлогинило и надо бы новую форму показать. Но с другой стороны, как отличить этот вариант, от варианта хака сайта?
Ты же выводишь разные формы в зависимости от того авторизован пользователь или нет, т.е. на этом этапе можно просто ввести некий флаг "авторизованности" в том числе через hidden поле формы.
Можно конечно пойти на хитрость, периодически дергать по таймеру сервер, и тем самым продлевать время сессии, но не думаю, что это правильно с точки зрения нагрузки на сервер.
Это неправильно с точки зрения безопасности и вмешательства в работу администратора сайта... он же не зря выставил определенное время сессии.
Самый большой "криминал" - это не сам факт истечения сессии, а то, что теряется комментарий при повторной авторизации.
Получается, что при добавлении комментария необходимо проверить условия:
- был ли авторизован пользователь (т.е. была показана краткая форма);
- действует ли сессия в момент добавления комментария.
В данном случае рассматриваем вариант:
- да;
- нет;
Мне видится следующая последовательность действий:
1. сохранить комментарий для добавления после авторизации (для этого, по идее, необходимо будет запомнить пользователя, материал и все данные комментария) - видимо необходима некая таблица временных комментариев "разлогиненных" пользователей - данные из нее по каждому пользователю будут удаляться при добавлении комментария данным пользователем;
2. вывести уведомление об окончании сессии и необходимости повторной авторизации, можно еще показать и форму для незарегистрированных пользователей;
3. после авторизации показать все данные по комментарию к материалу данного пользователя.
Примерно так.