用户在php中注册:如何删除尚未完成激活的用户


Users registration in php: how to delete users that have not completed activation

我将在php中编写用户注册,不想使用任何框架。通常是这样的:

  1. 用户填写注册表格。
  2. 我的应用程序发送电子邮件到用户的电子邮件地址。
  3. 用户点击邮件链接完成注册。

在第一步中,我将用户信息添加到存储未激活用户的特殊数据库表中。在第三步中,我将用户从该表移到已激活用户的表中。

我有几个问题:

  1. 这个逻辑好吗?如果不是,通常的做法是什么?
  2. 如何以及何时可以从第一个表中删除用户,如果他没有通过激活?
  3. 是否有轻量级库(不是框架)用于此目的?

谢谢!

不需要使用php会话机制从db中删除数据,"正如您在评论中所说的"

你可以随时删除数据。可能是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 d后

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脚本
  1. 通常这是两种方法之一。第一个是在用户被激活时存储一个布尔值。第二个是你的路。第二个具有将它们分开以更好地管理这些用户的优点。
  2. 你可以直接从表中删除它们。时间取决于你的项目需要,但相对较好的值是一天
  3. 我不认为有任何库专门用于注册部分。但是有很多成熟的安全库都包含了这个

希望这能回答你的问题