我有一个php脚本,通过电子邮件向用户发送激活链接,以便他们可以激活他们的帐户。链接如下:mysite.com/activation.phpid?id=20
如何创建24小时后过期的链接?
我没有尝试任何东西,因为我找不到任何东西来教我如何去做。我所知道的是,我可以通过在mysql中存储一些内容来实现这一点,但是如何?
如果有人能告诉我一步一步的指示,那将会很棒。由于
答案 0 :(得分:4)
建立如下链接:
$time = time();
$hash = md5($id . $time . "somerandomsalt"); // check this again in activation.php
$link = "activation.php?id=" . $id . "&hash=" . $hash . "&time=" . $time;
然后在activation.php
中检查哈希值是否匹配。哦,检查当然的时间:P
您可以隐藏 id , hash 和 time 查询参数,但这是基础。
答案 1 :(得分:0)
只需在数据库中添加一个额外字段,其中包含链接的到期日期。单击链接后,您可以检查日期以确保其未过期。
修改强>
我猜你的列和表名。
SELECT IF (DATEDIFF(date_registered, CURRENT_TIMESTAMP) <= 0, 1, 0) AS expired
FROM users
WHERE id = 20
如果expired
为1,则链接已过期。如果是0
则它有效。