我是PHP新手,如果用户在30天内没有尝试登录,我想自动删除该用户。
for example
if user login on "10-02-2012" ,
and if user doesnot login for next 30 days
then system should automatically delete his account.
if user again login on "15-02-2012" ,
then limit should be for next 30 days i-e "15-03-2012"
请帮助我,我对PHP很陌生
i have no idea how to store the date when user attempt to login.
-
您希望在用户表中有一个日期字段,并在登录脚本运行时将该日期设置为 CURDATE() 的查询。像这样:
更新"用户"设置"上次登录"= CURDATE(),其中"用户ID"="$userid";
-
有一个每天运行一次(或您想要的频率)的 crontab,用于查询 31 天前的所有字段并删除它们:
从"用户"中删除,其中"上次登录"
- 在数据库中记录上次登录日期。
- 编写一个脚本,用于搜索和删除上次登录时间超过 30 天的用户。
- 使用 cron 作业启动搜索和删除脚本
以下是构建登录系统的教程:
http://www.phpeasystep.com/phptu/6.html
您的解决方案将通过向成员表添加名为"last_login"的 DATETIME 字段来添加到教程中。每当有人登录时,您都会使用数据库查询更新last_login字段,例如:
UPDATE TABLE members SET last_login = CURRENT_TIME WHERE id = xxx LIMIT 1
然后,您可以每天运行一次另一个数据库查询来删除非活动帐户,并根据需要自定义删除日期:
DELETE FROM TABLE members WHERE last_login < '2012-04-01 00:00:00'
很简单。
- 在数据库表中创建一个存储最近登录日期的字段。
- 编写一个脚本,每晚在午夜运行,根据当前日期检查登录日期。
这样做的好处是日期对象允许您轻松轻松比较日期。
以下是一些会有所帮助的链接:
http://php.net/manual/en/function.date.php
http://www.w3schools.com/sql/sql_dates.asp
祝你好运! 这很简单,我已经做了很多次,我相信你不会有太多麻烦。
在存储用户帐户的数据库中,您可以使用内置的MySQL日期/时间数据类型之一存储他们上次登录的时间。在您的PHP中,您可以使用另一个MySQL命令将其更新为当前时间。此页面将帮助您入门: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
至于删除用户,您需要设置一个 cron 作业/计划任务,该任务将通过检查日期并查看是否为 30 天前来删除该用户。
您可以为用户表添加两个字段
-
created
: 用户注册的日期 -
login_date
:用户每次登录时的日期更新。
您可以使用在选定时间自动运行的cron job(运行在其中设置的路径的php文件)。 您可以每天在固定时间运行它。 如果发现created
和login_date
相同,则从数据库中删除该用户。您可以从 cpanel 设置 cron 作业。
谢谢
cron 作业一次,并检查从最近 30 天到当前时间/日期谁没有登录,您可以使用时间戳或日期进行上次登录