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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Код активации раз в час

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
maragon
Отправлено: 17 Июня, 2015 - 23:01:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Засыпаю за железным другом.. Задача то простая, но все никак.
- При регистрации высылаю смс-ку с кодом активации.
- Добавляю запрос в таблицу fh_activate { id, user_login, time } где time = time(); типо смс-выслал, дата последнего записалась.
- Тперь, когда пользователь каким-то макаром затеряет смс-ку в своем крутом смартфоне, нужно её отправить еще раз. Для этого есть ф-я выслать повторно.
Одно но, надо чтобы она была доступна раз в сутки например (60*60*24).
Вопрос:
Как высчитать правильно время и дать добро на отправку смс?
Как показать оставшееся время, если не прошло 24 часа?
Збазибо заранее! Закатив глазки


-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Июня, 2015 - 00:04:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




По мне, так айдишник в этой таблице лишний.
На поле юзер_айди повесить уникальный индекс, вставлять повторно так:

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

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

SELECT * FROM tbl WHERE user_id = N AND `time` > (NOW() - INTERVAL 1 DAY)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB