Я пытаюсь обновить значение «Verified» в содержимом таблицы базы данных. Для «проверенного» содержимого установлено значение «false». Я использую PHPMailer для отправки ссылки для подтверждения по электронной почте, как только пользователь нажимает кнопку / ссылку, я хочу изменить проверенную таблицу с «false» на «true». Вот код, который я использую, электронная почта отправляет просто отлично, но когда ссылка нажата, она не обновляет таблицу. (Я удалил конфиденциальную информацию)
<?php
require 'controllers/authController.php';
require_once 'db/config.php';
$name = $_SESSION['username'];
$email = $_SESSION['email'];
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try{
// Server Settings
$mail->SMTPDebug = 1;
$mail->isSMTP();
$mail->Host = '';
$mail->SMTPAuth = true;
$mail->Username = '';
$mail->Password = '';
$mail->SMTPSecure = '';
$mail->Port = ;
// Recipients
$mail->setFrom('', '');
$mail->addAddress($email);
$body = '<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="post">
<div class="wrapper">
Hi, ' . $name . '! <p>Please click the link below to verify your account.</p><br>
<button class = btn btn-primary verifylink><a href="localhost/gitscripts/home.php">Verify Email</a></button>
</form>';
if(isset($_GET['verifylink'])){
$verified = true;
$sql = "UPDATE users SET verified=[true]";
$stmt = $conn->prepare($sql);
$stmt->bind_param('b', $verified);
}
// Content
$mail->isHTML(true);
$mail->Subject = 'Verify Your Email';
$mail->Body = $body;
$mail->AltBody = strip_tags($body);
$mail->send();
echo 'Message has been sent';
} catch (Exception $e){
echo 'Message could not send';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
?>
Вот указанная строка кода c, которую я использовал, чтобы попытаться это осуществить ...
if(isset($_GET['verifylink'])){
$verified = true;
$sql = "UPDATE users SET verified=[true]";
$stmt = $conn->prepare($sql);
$stmt->bind_param('b', $verified);
}