Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Код активации раз в час
Форумы портала PHP.SU » » Вопросы новичков » Код активации раз в час

Страниц (1): [1]
 

1. maragon - 17 Июня, 2015 - 23:01:39 - перейти к сообщению
Засыпаю за железным другом.. Задача то простая, но все никак.
- При регистрации высылаю смс-ку с кодом активации.
- Добавляю запрос в таблицу fh_activate { id, user_login, time } где time = time(); типо смс-выслал, дата последнего записалась.
- Тперь, когда пользователь каким-то макаром затеряет смс-ку в своем крутом смартфоне, нужно её отправить еще раз. Для этого есть ф-я выслать повторно.
Одно но, надо чтобы она была доступна раз в сутки например (60*60*24).
Вопрос:
Как высчитать правильно время и дать добро на отправку смс?
Как показать оставшееся время, если не прошло 24 часа?
Збазибо заранее! Закатив глазки
2. DeepVarvar - 18 Июня, 2015 - 00:04:25 - перейти к сообщению
По мне, так айдишник в этой таблице лишний.
На поле юзер_айди повесить уникальный индекс, вставлять повторно так:

REPLACE INTO (user_id, `time`, `code`) VALUES (N, NOW(), 'dsfasdfasd')

Если айдишник пользака уже есть, то заапдейтит.
Это не даст разрастаться таблице.
В эту же таблицу я бы писал кроме времени еще и свежесгенеренный код активации как показано выше.
Время в эту таблицу я бы писал как показано выше.
Тогда выборка будет предельно проста:

SELECT * FROM tbl WHERE user_id = N AND `time` > (NOW() - INTERVAL 1 DAY)

 

Powered by ExBB FM 1.0 RC1