授予用户帐户访问权限一段时间


Giving users account access to for a certain amount of time?

我正在开发一个网站,用户必须支付少量费用才能创建一个帐户,拥有一个帐户将使他们能够在一定时间内访问网站的所有功能,比如说 6 个月。

现在,我正在使用php使用mysql数据库创建用户帐户来存储用户帐户信息,用户可以自由地免费登录/退出,时间不受限制。

我的问题是,我将如何为每个创建的帐户设置时间限制,一旦过期,就为用户提供重新续订其记忆的选项?

为什么不在用户表中添加一个过期列,并在允许登录之前将其与当前日期进行比较 - 如果此日期已过期,只需重定向到付款页面即可续订会员资格?

您还可以使用此日期显示活跃会员的"剩余天数",并在过去几天左右开始显示付款链接。

我一直使用 DATETIME 作为列类型来存储日期。

查看 MySQL 日期和时间函数 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 例如:以下查询选择过去 30 天内具有date_col值的所有行:

SELECT something FROM tbl_name
    -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

在您的情况下,您需要的是以下查询以使成员资格处于非活动状态 -

$sql = SELECT * FROM users WHERE
DATEDIFF(expiration_date, CURDATE()) days_left
HAVING days_left < 0 
while($row=.....) {
//Update query to set user_status='expired' or whatever 
}

如果你使用MySQL非常简单。只需向注册表添加一个包含用户到期日期的列。

喜欢这个:

| id | username | expiration_date |
| 1  | test     | 1029384756      |

然后你需要做的就是检查 time()(今天)是否是相对用户的>= expiration_date。如果是这样,它已过期。

我使用了时间戳格式作为到期日期,但您可以使用其他格式...

将帐户创建日期与用户名一起存储在 MySQL 数据库中。在登录时检查它,并在 6 个月后过期。过期后,将用户重定向到"续订您的会员资格"页面。

添加一个额外的列,例如。 expiry_time用户信息,然后在最初注册时设置其值。

该帐户将在current time >= Expiry_time时过期。 当用户想要重新更新记忆时,再次重新设置expiry_time的值。