PHP电子邮件确认

时间:2016-09-27 00:59:55

标签: php email confirmation email-confirmation

我尝试在有人注册时将电子邮件确认,数据发送到数据库,但不发送到电子邮件。这是我的代码

<?php
session_start();
include('configdb.php');
if(isset($_POST['submit']))
{
    //whether the username is blank
    if($_POST['username'] == '')
    {
        $_SESSION['error']['username'] = "User Name is required.";
    }
    //whether the email is blank
    if($_POST['email'] == '')
    {
        $_SESSION['error']['email'] = "E-mail is required.";
    }
    else
    {
        //whether the email format is correct
        if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $_POST['email']))
        {
            //if it has the correct format whether the email has already exist
            $email= $_POST['email'];
            $sql1 = "SELECT * FROM user WHERE email = '$email'";
            $result1 = mysqli_query($mysqli,$sql1) or die(mysqli_error());
            if (mysqli_num_rows($result1) > 0)
            {
                $_SESSION['error']['email'] = "This Email is already used.";
            }
        }
        else
        {
            //this error will set if the email format is not correct
            $_SESSION['error']['email'] = "Your email is not valid.";
        }
    }
    //whether the password is blank
    if($_POST['password'] == '')
    {
        $_SESSION['error']['password'] = "Password is required.";
    }

    //if the error exist, we will go to registration form
    if(isset($_SESSION['error']))
    {
        header("Location: index.php");
        exit;
    }
    else
    {
        $username = $_POST['username'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $com_code = md5(uniqid(rand()));

        $sql2 = "INSERT INTO user (username, email, password, com_code) VALUES ('$username','$email', '$password', '$com_code')";
        $result2 = mysqli_query($mysqli,$sql2) or die(mysqli_error());

        if($result2)
        {
            $to = $email;
            $subject = "Confirmation from TutsforWeb to $username";
            $header = "TutsforWeb: Confirmation from TutsforWeb";
            $message = "Please click the link below to verify and activate your account. rn";
            $message = "http://www.yourname.com/confirm.php?passkey=$com_code";

            $sentmail = @mail($to,$subject,$message,$header);

            if($sentmail)
            {
                echo "Your Confirmation link Has Been Sent To Your Email Address.";
            }
            else
            {
                echo "Cannot send Confirmation link to your e-mail address";
            }
        }
    }
}
?>

有人可以解决错误在哪里?因为没有发送电子邮件。你可以回答或建议编辑我的代码。我只是一名学生。我希望你们这位专家可以帮助我。谢谢你

0 个答案:

没有答案
相关问题