我有一个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
,那么它是有效的。