За последние 24 часа нас посетили 18969 программистов и 1685 роботов. Сейчас ищут 807 программистов ...

Автоматическое удаление пароля из Базы Данных после активаци

Тема в разделе "MySQL", создана пользователем terra, 19 янв 2010.

  1. terra

    terra Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте!

    Возникла задача, для решения которой необходимо следующее: есть сайт с закрытой частью. Вход на сайт осуществляется по паролю, который заранее уже содержится в Базе Данных. Посетитель вводит приобретенный им пароль и попадает на закрытые страницы сайта. По истечению срока сессии (допустим через 1 час после входа) или выхода пользователя с сайта до истечения этого срока активированный им пароль должен автоматически удаляться из БД (или блокироваться). Словом, этим паролем уже никто не сможет пользоваться (он одноразовый).
    Как сделать, чтобы шло сопоставление введенного пользователем пароля с набором паролей из Базы Данных я понял. Есть скрипт на PHP. Но вот как сделать, чтобы скрипт удалял пароль, активизированный пользователем из БД в автоматическом режиме я не понял.
    Подскажите, пожалуйста, люди добрые.
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    эээ... а проблема, собственно, в чем? Отловить конец сессии? Ну проверяй на каждый чих пользователя не прошел ли его час, и если прошел - убивай пароль и выкидывай пользователя.

    На самом деле можно проще - поскольку пароль действует 1 час после входа или до выхода пользователя с сайта до истечения этого срока - как только пользователь заходит с этим паролем, стирай пароль из базы, а пользователя выкидывай через час.
     
  3. terra

    terra Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    15
    Симпатии:
    0
    Да, в ручном режиме это конечно можно отслеживать. Но хотелось бы, чтобы это делалось автоматически: у пользователя имеется пароль, который уже содержится в БД. Как только он, пользователь, активировал свой пароль, с этого момента него имеется час времени на ознакомление с материалами сайта. Пароль после этого должен автоматически удаляться. Есть другие идеи?
     
  4. terra

    terra Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    15
    Симпатии:
    0
    Говорят, что можно, мол, сделать так: добавить в базу поле activated, туда занести время активации (момент первого входа) пароля, а при попытке входа с этим паролем проверять, не просрочен ли он. Однако, не знаю, как это практически сделать.
     
  5. LuckyScrat

    LuckyScrat Активный пользователь

    С нами с:
    16 июн 2009
    Сообщения:
    176
    Симпатии:
    0
    Адрес:
    Москва
    сравнить текущее время и время из поля activated

    [sql]SELECT TIMESTAMPDIFF(HOUR,`activated`,NOW()) AS t FROM `table`[/sql]
     
  6. terra

    terra Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    15
    Симпатии:
    0
    Спасибо за ответ!

    Уже сделал.

    Удачи!