【发布时间】:2020-02-16 02:32:07
【问题描述】:
我创建了一个电子邮件验证链接,该链接仅在发送邮件后的 10 分钟内有效,但我下面给出的代码无效。
等等,我在 StackOverflow 上显示了所有相关线程,当然我得到了与问题相关的相同帖子,但我也做了那个结果答案,但它对我不起作用,所以我发布了这个问题,可能有人有同样的问题,并且它将对其他人有所帮助。
请不要将其标记为重复和处于审核模式,并尝试理解我的查询。
请帮助我解决这个问题以及什么是正确的代码。 :(
我的代码如下:-
其他代码
date_default_timezone_set('Asia/Kolkata');
tokenExpire formats: (new DateTime('+10 minutes'))->format('Y-m-d H:i:s')
数据库结构[注册名称]
-----------------------------------------------------
Email | token | tokenExpire |
----------------------------------------------------
abcd@domain.com | {randNum} | 2019-10-19 09:42:10 |
-----------------------------------------------------
PDO 声明
$sql = $con->prepare("SELECT `Email`,`token` FROM `signup` WHERE Email= :1 AND token= :2 AND tokenExpire > NOW()");
$sql->execute(array(
':1' => $emailid,
':2' => $tokenum
));
if ($sql->rowCount() > 0) { echo "Link Is Valid"; }
else { echo "Link Expired"; }
我希望它必须代表我的代码显示时间过期或有效信息,但它不起作用,并且即使时间过去也显示链接有效。
【问题讨论】:
-
您需要在此处操作和转换日期、时区和 UTC:Should MySQL have its timezone set to UTC