Как реализовать подтверждение регистрации на сайте

Статус
В этой теме нельзя размещать новые ответы.

z80live

Новичок
Как реализовать подтверждение регистрации на сайте

Привет всем.
На очень многих сайтах я вижу как после регистрации приходит уведомительное письмо для подтверждение регистрации на сайте, где нужно пройти по ссылке не позже трёх дрей.
Ссылка для подтверждения содержит в себе некий идентификатор, который привязан к зарегистрированному пользователю и имеет время подлинности ограниченное время, например три дня.
Вопрос: Где лучше хранить такой идентификатор (в базе данных, в файле), который будет привязан к пользователю. И самое сложное как можно реализовать его удаление через определённый период времени, ведь скрипт работает какое то время, как этот идентификатор будет ликвидироваться, никак в толк не могу взять.
Подскажите как лучше реализовать такой механизм.
 

sage

Новичок
Вопрос: Где лучше хранить такой идентификатор (в базе данных, в файле), который будет привязан к пользователю.
в бд. хранишь ид пользователя и сам идентификатор.
И самое сложное как можно реализовать его удаление через определённый период времени,
при проходе по ссылке удаляешь просто запись из бд
 

Фанат

oncle terrible
Команда форума
о боже какие вселенские проблемы.
пусть скрипт регистрации в самом начале своей работы выполняет запрос на очистку таблицы
 

karaken

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

z80live

Новичок
MySQL 5 + EVENTS это конечно хорошо, но в четвёртой версии такого нет. Мне интересно как это реализовываться вообще, то есть такая фича была придумана задолго до пятой версии. Если это реализовывать как удаление записей в самом начале скрипта, а если записей подлежащих удалению будет 10 000, то это будет явно не производительно. А по заданию раз в N-дней тоже громоздко тем более, что записи нужно не только раз в сутки проверять, а ещё с точностью до часов.
 

Андрейка

Senior pomidor developer
то это будет явно не производительно
купишь себе мощный сервер под подтверждение регистраций и все будет работать быстро и весело
 

Angerslave

Новичок
z80live, а ты думаешь у тебя будет 10000 регистраций в сутки?

Я лично в сайте встроил функционал, который при запуске в каждом модуле пытается запустить init.php. И уже в этом init.php делаю mysql_query("DELETE FROM ... WHERE date<".(time() - 3600)); к примеру. Если у тебя будет 10000 регистраций в сутки, то открытий страниц будет ещё больше, причём каждый раз этот запрос будет выполняться, то есть удаление будет "размазано" по времени и в среднем за запрос будет удаляться меньше 1 регистрации.
 

Фанат

oncle terrible
Команда форума
тем более, что записи нужно не только раз в сутки проверять, а ещё с точностью до часов.
при чём здесь удаление?
Если это реализовывать как удаление записей в самом начале скрипта, а если записей подлежащих удалению будет 10 000, то это будет явно не производительно. А по заданию раз в N-дней тоже громоздко
слушай, ты определись уже!
ты за советом пришёл, или носом вертеть?
 

karaken

Новичок
а смысл такой точности до часов ? в конце концов можно же запись оставить а возможность активации блокировать , ввиду истечение ссрока. и почему если ты раз в н-дней делаеш
("DELETE FROM ... WHERE date<".(time() - 3600)) будет громозко?
 

z80live

Новичок
Я понял надо в таблице (например MySQL базы) организовать что то похожее на стёк, то есть сделать так, что бы строки сохранялись не больше определённого интервала времени.
Как именно сделать так?
 

z80live

Новичок
Автор оригинала: z80live
Я понял надо в таблице (например MySQL базы) организовать что то похожее на стёк, то есть сделать так, что бы строки сохранялись не больше определённого интервала времени.
Как именно сделать так?
Нужно создать таблицу в которой записи будут хранится не более 72 часов. Можно ли это сделать средствами MySQL?
 

Андрейка

Senior pomidor developer
ты сказал - организовать что то похожее на стёк :)

в которой записи будут хранится не более 72 часов
а в чем проблема, если они все еще будут там через 75 часов?

Можно ли это сделать средствами MySQL?
нет, используй oracle.. вообще кажись ты не тем занимаешся
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху