如何使PHP中的激活链接失效?

时间:2013-02-06 01:14:07

标签: php mysql

我有一个php脚本,通过电子邮件向用户发送激活链接,以便他们可以激活他们的帐户。链接如下:mysite.com/activation.phpid?id=20

如何创建24小时后过期的链接?

我没有尝试任何东西,因为我找不到任何东西来教我如何去做。我所知道的是,我可以通过在mysql中存储一些内容来实现这一点,但是如何?

如果有人能告诉我一步一步的指示,那将会很棒。

由于

2 个答案:

答案 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则它有效。