调用condition时不满足的第二个条件



下面是我的激活代码的基础,用户在注册激活时被发送一个链接。当他们点击链接时,它激活并正常工作,如果链接中的令牌不匹配数据库中的任何令牌,它应该重定向错误消息,这是挂起它不重定向,甚至显示错误消息,它只是停留在一个空白页面。

我真的不知道我错过了什么,我甚至尝试了其他如果我错过了什么

if (($_SERVER['REQUEST_METHOD'] === "GET") && isset($_GET['hash_token'])) {
$db = DB_CONNECT();
$stmt = $db->prepare("SELECT id, email, confirm_code FROM users WHERE confirm_code = ?");
$stmt->bind_param('s', $_GET['hash_token']);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();

while ($row = mysqli_fetch_assoc($result)) {
$email = $row['email'];
$confirm_code = $row['confirm_code'];
if ($confirm_code !== null && $confirm_code === $_GET['hash_token']) {
$is_activated = 1;
$set_confirm_code = null;
$stmt2 = $db->prepare("UPDATE users SET is_activated = ?, confirm_code = ?  WHERE confirm_code = ?");
$stmt2->bind_param('sss', $is_activated, $set_confirm_code, $confirm_code);
$stmt2->execute();
$stmt2->close();
set_message("Your account has been activated please login.", SUCCESS);
redirect_to_url("/");

} else {

set_message("Unable to activate with provided data.", WARNING);
redirect_to_url("/");

}
}
}

$stmt返回null结果时,block不会被执行。试试这个

<?php
if (($_SERVER['REQUEST_METHOD'] === "GET") && isset($_GET['hash_token'])) {
$db = DB_CONNECT();
$stmt = $db->prepare("SELECT id, email, confirm_code FROM users WHERE confirm_code = ?");
$stmt->bind_param('s', $_GET['hash_token']);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
if (mysqli_num_rows($result) > 0 ) {
while ($row = mysqli_fetch_assoc($result)) {

$email = $row['email'];
$confirm_code = $row['confirm_code'];

if ($confirm_code !== null && $confirm_code === $_GET['hash_token']) {

$is_activated = 1;
$set_confirm_code = null;

$stmt2 = $db->prepare("UPDATE users SET is_activated = ?, confirm_code = ?  WHERE confirm_code = ?");
$stmt2->bind_param('sss', $is_activated, $set_confirm_code, $confirm_code);
$stmt2->execute();
$stmt2->close();

set_message("Your account has been activated please login.", SUCCESS);
redirect_to_url("/");


} else {


set_message("Unable to activate with provided data.", WARNING);
redirect_to_url("/");


}
}
} else {
set_message("Unable to activate with provided data.", WARNING);
redirect_to_url("/");
}
}

最新更新