php用户注册:如何删除未完成激活的用户
Users registration in php: how to delete users that have not completed activation
我准备在php中写用户注册,不想用任何框架。通常它看起来像这样:
- 用户填写注册表。
- 我的应用向用户的电子邮件地址发送电子邮件。
- 用户通过单击电子邮件中的 link 完成注册。
第一步,我将用户信息添加到一个特殊的数据库中 table,该数据库存储未激活的用户。
在第三步中,我将用户从 table 移动到激活用户的 table。
我有几个问题:
- 这个逻辑好吗?如果不是,通常的做法是什么?
- 如果您还没有通过激活,我如何以及何时可以从第一个 table 中删除用户?
- 是否有用于此目的的轻量级库(不是框架)?
谢谢!
- 通常这是两种方法之一。如果用户被激活,第一个是存储布尔值。第二个是你的方式。第二个的优点是将它们分开以便更好地管理这些用户。
- 您可以直接从 table 中删除它们。时间取决于您的项目需要什么,但相对较好的价值是一天
- 我认为没有任何特定于仅注册部分的库。但是有很多成熟的安全库包含了这个
希望这能回答您的问题
不需要使用php会话机制从数据库中删除数据,"as you said in comment"
您可以随时删除数据。可能在 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 脚本
我准备在php中写用户注册,不想用任何框架。通常它看起来像这样:
- 用户填写注册表。
- 我的应用向用户的电子邮件地址发送电子邮件。
- 用户通过单击电子邮件中的 link 完成注册。
第一步,我将用户信息添加到一个特殊的数据库中 table,该数据库存储未激活的用户。 在第三步中,我将用户从 table 移动到激活用户的 table。
我有几个问题:
- 这个逻辑好吗?如果不是,通常的做法是什么?
- 如果您还没有通过激活,我如何以及何时可以从第一个 table 中删除用户?
- 是否有用于此目的的轻量级库(不是框架)?
谢谢!
- 通常这是两种方法之一。如果用户被激活,第一个是存储布尔值。第二个是你的方式。第二个的优点是将它们分开以便更好地管理这些用户。
- 您可以直接从 table 中删除它们。时间取决于您的项目需要什么,但相对较好的价值是一天
- 我认为没有任何特定于仅注册部分的库。但是有很多成熟的安全库包含了这个
希望这能回答您的问题
不需要使用php会话机制从数据库中删除数据,"as you said in comment"
您可以随时删除数据。可能在 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 脚本