email — регистрация пользователей в php: как удалить пользователей, которые не завершили активацию

Я собираюсь написать регистрацию пользователя в php и не хочу использовать какие-либо рамки. Обычно это выглядит так:

  1. Пользователь заполняет регистрационную форму.
  2. Мое приложение отправляет письмо на электронный адрес пользователя.
  3. Пройдите регистрацию, нажав на ссылку в письме.

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

У меня есть несколько вопросов:

  1. Эта логика хороша? Если нет, то какова общая практика?
  2. Как и когда я могу удалить пользователя из первой таблицы, если привет не прошел активацию?
  3. Существуют ли облегченные библиотеки (не фреймворки) для этой цели?

Спасибо!

1

Решение

Нет необходимости использовать механизм сессии php для удаления данных из базы данных, «как вы сказали в комментарии»

Вы можете удалить данные, когда захотите. Может быть через 24 часа или 7 дней или 1 месяц. Может быть, это зависит от трафика, который вы получите.

Но как только пользовательские регистры сохраняют время в reg_time колонка. По которому при удалении будет сделано сравнение с reg_time,

если вы хотите удалить через 24 часа, то

delete from ACCOUNT_TBL_DETAIL
where usrActivated=0 AND regTime <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 1 DAY));

Через 7 дней

delete from ACCOUNT_TBL_DETAIL
where usrActivated=0 AND regTime <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 7 DAY));

Чтобы запланировать сценарий SQL

CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE

DO BEGIN
DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;

это простой скрипт cron

2

Другие решения

  1. Обычно это один из двух способов сделать это. Первый хранит логическое значение, если пользователь активирован. Второй твой путь. Со вторым преимущество заключается в том, что они хранятся отдельно для лучшего управления этими пользователями.
  2. Вы можете просто удалить их из таблицы. Время зависит от того, что требует ваш проект, но относительно хорошая ценность будет один день
  3. Я не думаю, что есть какие-то библиотеки, предназначенные только для регистрации. Но есть много полноценных библиотек безопасности, которые включают это

Надеюсь, что это ответ на ваш вопрос

2

По вопросам рекламы [email protected]