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 :
- the new user inserts successfully into the database.
- the users get the message "You have been successfully registered".
problem : here is the problem the user never get his Verification email.