我一直试图为密码重置请求添加到期日期。
当用户此时请求密码请求时,它会在数据库中将过期日期存储为NOW()+ INTERVAL 2 DAY - 所以恰好在2天之后。
当用户按照重置链接返回页面时,会检查重置键是否存在,然后运行一系列if语句,其中一个我想测试当前DateTime是否大于在数据库中,如果它然后显示错误消息。
我尝试了很多方法,因为大多数人倾向于建议使用SQL来评估这一点。我发现的最新和最受欢迎的是执行以下操作:
"SELECT *, DATE(`Expiration`) > DATE(NOW()) AS is_current FROM password_reset WHERE Reset_link='$key'"
这样你就可以将结果输入变量并在if语句中测试它,is_current
将为0或1,即:
if ($result_check_row['is_current']){
echo '<div class="warning">Your password reset request has now expired. Please request a new one by completing the form again.''</div>';
}
我对此没有任何好运,或者我尝试过的任何其他事情,包括通过PHP创建时间戳来对此进行测试。
任何人都可以看到我出错的地方或建议一个好的选择吗?
答案 0 :(得分:1)
尝试此查询,它将产生当前日期和到期日期之间的日期差异......
SELECT DATEDIFF(DATE(`Expiration`), DATE(NOW())) AS DiffDate FROM password_reset WHERE Reset_link='$key'"