繁体   English   中英

如果未确认电子邮件,则从数据库中删除用户

[英]Delete user from database if email not confirmed

我目前正在基于注册的网站上工作,并且我让服务器在注册后向用户发送激活电子邮件。 您可以想象,这都是用PHP完成的,因此我正在使用mail()函数。

一旦用户收到电子邮件并单击激活链接,“用户”表中的“活动”字段将设置为true,这一切都很好。 但是,如果用户不确认其电子邮件地址,这就是问题所在,我该怎么办?

我曾考虑过保留用户注册日期和时间之类的详细信息,但是我不知道如何处理这些数据。 在设定的时间后,服务器如何自动从数据库中删除用户?

我想这就是我要问的,但老实说,我不知道通常的协议...

结论:由于Cron适用于基于Unix的服务器,因此我不得不继续使用它,但是我发现非常有趣的是,我可以使用Windows内置的Windows Task Scheduler。 这至少意味着我可以在托管任何服务器之前在PC上对其进行测试。 谢谢你们

您绝对应该存储发送激活链接的日期和时间。

确实没有一种方法可以告诉服务器自动删除过时的用户数据,但是编写自己的代码很容易。 假设您有权访问服务器上的cron,则可以将cronjob设置为每天晚上2点运行(例如),并执行PHP脚本来搜索数据库,以查找在X天前已发送链接但从未确认的用户它

我认为解决方案是在发送邮件时存储时间戳。 现在每15分钟运行一次cron,它将检查哪些值的时间戳超过24小时或您想要的任何时限,然后将其从数据库中删除

只需在index.php文件中调用以下代码即可。 (为什么使用index.php?-因为每次都需要它,并且可以“充当” cronjob。)

(只是伪代码-可能需要一些调整!)mysql_query(“从用户处于活动状态的用户删除='false'AND registerTime <(NOW-60 * 60 * 24 * 7)”)

这将删除7天内未激活的所有用户。

我认为这只是一个构想,您可以在此基础上继续前进。

您应该研究每天运行的cronjobs 只需将用户注册的时间与数据库中的字段一起输入即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM