我正在一个网站上工作,用户必须支付少量费用才能创建一个帐户,拥有一个帐户可以让他们在一定时间内访问网站的所有功能,比方说6个月
现在,我正在使用php创建用户帐户,使用mysql数据库来存储用户帐户信息,用户可以无限制地免费登录/退出。
我的问题是,我如何设置每个创建的帐户的时间限制,一旦过期,让用户可以选择重新创建他们的会员?
答案 0 :(得分:1)
为什么不在用户表中添加过期列并在允许登录之前将其与当前日期进行比较 - 如果此日期已过期,只需重定向到付款页面以续订会员资格?
您还可以使用此日期显示活跃会员的“剩余天数”,并在过去几天左右开始显示付款链接。
我一直使用DATETIME作为列类型来存储日期信息。
在http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html查看MySQL日期和时间函数例如:以下查询选择过去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
}
答案 1 :(得分:1)
如果您使用MySQL非常简单。只需在注册表中添加一列,其中包含用户的过期日期。
像这样:
| id | username | expiration_date |
| 1 | test | 1029384756 |
然后,您需要做的就是检查相对用户的time()(今天)是否为&gt; = expiration_date。如果是的话就过期了。
我使用了时间戳格式作为截止日期,但您可以使用其他格式......
答案 2 :(得分:0)
将帐户创建日期与用户名一起存储在MySQL DB中。登录时检查并在6个月后过期。一旦过期,请将用户重定向到“续订您的会员资格”页面。
答案 3 :(得分:0)
添加额外的列ex。 expiry_time
以及用户信息,然后在注册时设置它的值。
帐户将在current time >= Expiry_time
时过期。当用户想要重新创建会员时,再次重新设置expiry_time
的值。