0

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

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

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

如果有人能告诉我一步一步的指导,那就太好了。

谢谢

4

2 回答 2

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

你可以稍微混淆一下以隐藏idhashtime查询参数,但这是基础。

于 2013-02-06T01:17:01.837 回答
0

只需在您的数据库中添加一个带有链接到期日期的额外字段。单击链接后,您可以检查日期以确保它没有过期。

编辑

我猜你的列名和表名。

SELECT IF (DATEDIFF(date_registered, CURRENT_TIMESTAMP) <= 0, 1, 0) AS expired
FROM users
WHERE id = 20

如果expired为 1,则链接已过期。如果是,0那么它是有效的。

于 2013-02-06T01:15:35.823 回答