我有一个 php 脚本,它通过电子邮件向用户发送激活链接,以便他们激活他们的帐户。链接是这样的:mysite.com/activation.phpid?id=20
如何创建 24 小时后过期的链接?
我没有尝试过任何东西,因为我找不到任何东西可以教我如何去做。我所知道的是,我可以通过在 mysql 中存储一些东西来做到这一点,但是怎么做呢?
如果有人能告诉我一步一步的指导,那就太好了。
谢谢
制作这样的链接:
$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查询参数,但这是基础。
只需在您的数据库中添加一个带有链接到期日期的额外字段。单击链接后,您可以检查日期以确保它没有过期。
编辑
我猜你的列名和表名。
SELECT IF (DATEDIFF(date_registered, CURRENT_TIMESTAMP) <= 0, 1, 0) AS expired
FROM users
WHERE id = 20
如果expired
为 1,则链接已过期。如果是,0
那么它是有效的。