如果用户在 PHP 中 30 天内未尝试登录,如何删除用户


how to delete user if user doesnot attempt login within 30 days in php

我是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. 
  1. 您希望在用户表中有一个日期字段,并在登录脚本运行时将该日期设置为 CURDATE() 的查询。像这样:

    更新"用户"设置"上次登录"= CURDATE(),其中"用户ID"="$userid";

  2. 有一个每天运行一次(或您想要的频率)的 crontab,用于查询 31 天前的所有字段并删除它们:

    从"用户"中删除,其中"上次登录"

  1. 在数据库中记录上次登录日期。
  2. 编写一个脚本,用于搜索和删除上次登录时间超过 30 天的用户。
  3. 使用 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'

很简单。

  1. 在数据库表中创建一个存储最近登录日期的字段。
  2. 编写一个脚本,每晚在午夜运行,根据当前日期检查登录日期。

这样做的好处是日期对象允许您轻松轻松比较日期。

以下是一些会有所帮助的链接:

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 天前来删除该用户。

您可以为用户表添加两个字段

  1. created : 用户注册的日期
  2. login_date :用户每次登录时的日期更新。

您可以使用在选定时间自动运行的cron job(运行在其中设置的路径的php文件)。 您可以每天在固定时间运行它。 如果发现createdlogin_date相同,则从数据库中删除该用户。您可以从 cpanel 设置 cron 作业。

谢谢

每天设置

cron 作业一次,并检查从最近 30 天到当前时间/日期谁没有登录,您可以使用时间戳或日期进行上次登录