duanben4771 2012-10-11 10:34
浏览 45
已采纳

注册表单不向用户发送电子邮件[关闭]

I have this form which sign up users and send email to verify emails is correct and exists the users sign up OK but the "Verification Email" did not sent to the user email

here is the PHP Code

    <?php

if (isset($_POST['submited'])) {
    $msg = "";

    $RFname = clean_text($_POST['RFname']);
    $RLname = clean_text($_POST['RLname']);
    $USERname = clean_text($_POST['UserName']);
    $USERpassword = $_POST['UserPass'];
    $USERpassword2 = $_POST['UserPassConfirm'];
    $USERemail = $_POST['UserEmail'];
    $USERwebsite = $_POST['WebSite'];
    $hash = clean_text(md5(rand(0, 1000)));
    $checkEmail = $db->query("select * from loginaccess where Email ='" . $USERemail . "'");
    $checkUID = $db->query("select * from loginaccess where Uname ='" . $USERname . "'");


    if ($USERpassword !== $USERpassword2) {
        $msg = "<span style='color:#F00; font-size:14px; font-weight:bold;'>Passwords did not match</span>";
    } elseif ($checkEmail->num_rows == 1) {
        $msg = "<span style='color:#F00; font-size:14px; font-weight:bold;'>This email already taken</span>";
    } elseif ($checkUID->num_rows == 1) {
        $msg = "<span style='color:#F00; font-size:14px; font-weight:bold;'>This User name already taken</span>";
    } elseif (empty($_SESSION['6_letters_code']) || strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0) {
        $msg = "<span class='errorMessges'>Human code verification invalid</span>";
    } else {
        $putData = "insert into loginaccess (id, FUname, LUname, Uname, Pword, Email, Website, hash) value ('', '$RFname', '$RLname', '$USERname', '$USERpassword', '$USERemail', '$USERwebsite', '$hash')";
        $inputResult = $db->query($putData) or die ('$db->error');
        if ($inputResult) {
            $msg = "<span class='successMessgaes'>You have been successfully registered</span>";

            // Send email to our user 
            $to = '$USERemail';
            $subject = 'Signup | Verification';
            $message = "

        Welcome to Learning and share.

    Before you can use your new account you must activate it - this ensures the e-mail address you used is valid and belongs to you.  To activate your account, click the link below or copy and paste the whole thing into your browser's location bar:

    -------------------------------------------------------------------------------------------------------- 
    http://www.yourwebsite.com/verify.php?email='.$USERemail.'&hash='.$hash.'
    -------------------------------------------------------------------------------------------------------- 

    Once you've successfully activated your account, you can throw away this e-mail.

    Thanks!

    The Learning and share staff


    ";
            $headers = 'From:noreply@learning.com' . "
";
            mail($to, $subject, $message, $headers);
        } else {
            $msg = "<span class='errorMessges'>There was an error please try again later</span>";
        }
    }
}
?>

and this is HTML Code

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

    <table width="762" border="0" cellspacing="5" cellpadding="5">
        <tr>
            <td colspan="2" class="socialAndPeopleByName">Personal information</td>
            <td colspan="2"><span class="socialAndPeopleByName">Account information</span></td>
        </tr>
        <tr>
            <td width="91" class="registrationInfo"><span class="red">*</span> First name</td>
            <td width="203"><label for="textfield"></label>
              <span id="sprytextfield1">
              <input name="RFname" type="text" class="registrationFeild" id="textfield"/>
              <span class="textfieldRequiredMsg"><br>
              First name  is required.</span></span></td>
            <td width="148"><span class="red">*</span><span class="registrationInfo"> User name</span></td>
            <td width="255"><span id="sprytextfield5">
              <input name="UserName" type="text" class="registrationFeild" id="textfield5"/>
              <span class="textfieldRequiredMsg"><br>
              User name is required.</span></span></td>
        </tr>
        <tr>
            <td class="registrationInfo"><span class="red">*</span> Last name</td>
            <td><span id="sprytextfield2">
              <input name="RLname" type="text" class="registrationFeild" id="textfield2"/>
              <span class="textfieldRequiredMsg"><br>
              Last name is required.</span></span></td>
            <td><span class="red">*</span><span class="registrationInfo"> Password</span></td>
            <td><span id="sprypassword1">
            <input name="UserPass" type="password" class="registrationFeild" id="textfield7"/>
            <span class="passwordRequiredMsg"><br>
            Password is required.</span><span class="passwordMaxCharsMsg"><br>
            Password can't be more then 20 letter</span><span class="passwordMinCharsMsg"><br>
            Password can't be less then 6 letter</span></span></td>
        </tr>
        <tr>
            <td class="registrationInfo"><span class="red">*</span> Valid email</td>
            <td><span id="sprytextfield3">
            <input name="UserEmail" type="text" class="registrationFeild" id="textfield3"/>
            <br>
            <span class="textfieldRequiredMsg">Valid email is required.</span><span class="textfieldInvalidFormatMsg">Invalid email format.</span></span>
            </td>
            <td><span class="red">*</span><span class="registrationInfo"> Confirm Password</span></td>
            <td><span id="sprypassword2">
              <input name="UserPassConfirm" type="password" class="registrationFeild" id="textfield8"/>
              <span class="passwordRequiredMsg"><br>
              Please confirm your password</span></span></td>
        </tr>
        <tr>
            <td class="registrationInfo">Web site</td>
            <td><span id="sprytextfield4">
              <input name="WebSite" type="text" class="registrationFeild" id="textfield4"/>
              <br>
              <span class="textfieldInvalidFormatMsg">Invalid format</span></span></td>
            <td><span class="registrationInfo"><span class="red">*</span> Prove you are human</span></td>
            <td><img src="includes/captcha.php?rand=<?php echo rand(); ?>" align="absmiddle" id='captchaimg'/> <a
                    href="javascript: refreshCaptcha();"><img src="images/refreshIcon.jpg" alt="Refresh" width="18"
                                                              height="25" border="0" align="absmiddle"/></a> <input
                    name="6_letters_code" type="text" class="registrationFeildSmall" id="6_letters_code"/></td>
        </tr>
        <tr>
            <td colspan="3"><?php if (!empty($msg)) {
                    echo $msg;
                } ?></td>
            <td><input name="submited" type="submit" class="signUpItem" id="submited" value=""/></td>
        </tr>
    </table>
</form>

what happen after user sign up :

  1. the new user inserts successfully into the database.
  2. the users get the message "You have been successfully registered".

problem : here is the problem the user never get his Verification email.

  • 写回答

2条回答 默认 最新

  • dsgfdgh14569 2012-10-11 11:56
    关注

    Change:

    $to='$USERemail';
    

    To:

    $to = $USERemail; 
    

    PHP doesn't allow string interpolation of variables in single quotes.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿