0

我是 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. 
4

7 回答 7

1
  1. 在数据库中记录上次登录日期。
  2. 编写一个脚本,搜索并删除上次登录时间超过 30 天的用户。
  3. 使用 cron 作业启动搜索和删除脚本
于 2012-05-02T07:41:28.523 回答
1
  1. 您希望在用户表中有一个日期字段,并在登录脚本运行时将该日期设置为 CURDATE() 的查询。就像是:

    UPDATE 'users' SET 'lastlogin' = CURDATE() WHERE 'userid' = '$userid';

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

    从“用户”中删除“上次登录”< CURDATE() - 间隔 31 天

于 2012-05-02T07:46:15.737 回答
1

这里有一个关于构建登录系统的教程:
http ://www.phpeasystep.com/phptu/6.html

您的解决方案将通过将名为“last_login”的 DATETIME 字段添加到 members 表来添加到教程中。每当有人登录时,您都会使用数据库查询更新 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'
于 2012-05-02T07:51:25.657 回答
1

这很简单。

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

这样做的好处是日期对象使您可以轻松地轻松比较日期。

这里有一些链接会有所帮助:

http://php.net/manual/en/function.date.php

http://www.w3schools.com/sql/sql_dates.asp

祝你好运!这很简单,我已经做过很多次了,我相信你不会有太多麻烦。

于 2012-05-02T07:53:22.087 回答
0

在存储用户帐户的数据库中,您可以使用内置的 MySQL 日期/时间数据类型之一存储他们上次登录的时间。在您的 PHP 中,您可以使用另一个 MySQL 命令将其更新为当前时间。此页面将帮助您入门:http ://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

至于删除用户,您需要设置一个 cron 作业/计划任务,通过检查日期并查看它是否是 30 天前来删除该用户。

于 2012-05-02T07:39:13.207 回答
0

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

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

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

谢谢

于 2012-05-02T07:40:32.270 回答
0

每天设置一次 cron 作业并检查从过去 30 天到当前时间/日期未登录的人员您可以使用时间戳或日期进行上次登录

于 2012-05-02T07:49:25.550 回答