Здравствуйте! Возникла задача, для решения которой необходимо следующее: есть сайт с закрытой частью. Вход на сайт осуществляется по паролю, который заранее уже содержится в Базе Данных. Посетитель вводит приобретенный им пароль и попадает на закрытые страницы сайта. По истечению срока сессии (допустим через 1 час после входа) или выхода пользователя с сайта до истечения этого срока активированный им пароль должен автоматически удаляться из БД (или блокироваться). Словом, этим паролем уже никто не сможет пользоваться (он одноразовый). Как сделать, чтобы шло сопоставление введенного пользователем пароля с набором паролей из Базы Данных я понял. Есть скрипт на PHP. Но вот как сделать, чтобы скрипт удалял пароль, активизированный пользователем из БД в автоматическом режиме я не понял. Подскажите, пожалуйста, люди добрые.
эээ... а проблема, собственно, в чем? Отловить конец сессии? Ну проверяй на каждый чих пользователя не прошел ли его час, и если прошел - убивай пароль и выкидывай пользователя. На самом деле можно проще - поскольку пароль действует 1 час после входа или до выхода пользователя с сайта до истечения этого срока - как только пользователь заходит с этим паролем, стирай пароль из базы, а пользователя выкидывай через час.
Да, в ручном режиме это конечно можно отслеживать. Но хотелось бы, чтобы это делалось автоматически: у пользователя имеется пароль, который уже содержится в БД. Как только он, пользователь, активировал свой пароль, с этого момента него имеется час времени на ознакомление с материалами сайта. Пароль после этого должен автоматически удаляться. Есть другие идеи?
Говорят, что можно, мол, сделать так: добавить в базу поле activated, туда занести время активации (момент первого входа) пароля, а при попытке входа с этим паролем проверять, не просрочен ли он. Однако, не знаю, как это практически сделать.
сравнить текущее время и время из поля activated [sql]SELECT TIMESTAMPDIFF(HOUR,`activated`,NOW()) AS t FROM `table`[/sql]