【发布时间】:2019-05-27 23:31:16
【问题描述】:
我是 PHP 新手。我目前正在做电子邮件验证。我的代码应该生成一个随机数,通过电子邮件发送给用户并在用户输入时进行验证。
这是我的代码:
<?php
require 'PHPMailer/PHPMailerAutoload.php';
session_start();
// initializing variables
$email = $_SESSION ['email'];
$user_code = "";
$errors = array();
// generate a four digit random number
$gen_code = strval (rand (10000, 99999));
// send code to user email
// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'register');
// REGISTER USER
if (isset($_POST['email_confirm'])) {
// receive all input values from the form
$user_code = mysqli_real_escape_string($db, $_POST['code']);
// check whether both codes match
if ($user_code != $gen_code) { array_push($errors, "The codes do not match"); }
else {
// set isConfirmed == true
if (count($errors) == 0) {
$query = "UPDATE user_database SET isConfirmed = true WHERE email = '$email'";
mysqli_query($db, $query);
$_SESSION['email'] = $email;
header('location: user_details.php');
}
}
}
?>
这里email_confirm是我的提交按钮的名称,code是文本框的名称。
第一次加载页面时一切正常。我收到一封带有随机整数的电子邮件。
当我单击提交按钮时,问题就开始了。我收到另一封不同号码的电子邮件,而我已经输入的号码与我从电子邮件中收到的号码不相等。
请帮忙
【问题讨论】:
-
是你所有的代码,它不发送电子邮件
-
我没有包含电子邮件发送逻辑,因为代码会很大。由于逻辑有效,我省略了它
-
好吧,你说它不应该发送电子邮件,所以听起来逻辑不工作。无论如何,没有代码我也无能为力。