No, I am new to this form!
I have successfully set up a contact form page. It emails me the 'email address' and 'message' from the form fields, but does not send the name filed value, it is just blank.
I cannot see where I have gone wrong. All the field names match up to the PHP file. Any ideas as to what I'm doing wrong?
Here is my code:
<form id="form_28" name="website_query" action="mailform2.php" accept-charset="UTF-8" method="post" target="_self" enctype="multipart/form-data" style="margin:0;position:absolute;left:231px;top:242px;width:343px;height:229px; /*MainDivStyle*/" __AddCode="here">
<!--MainDivStart-->
<!-- HTML Frame - name txt_31 -->
<!--Preamble-->
<div style="position:absolute;left:8px;top:8px;width:51px;height:18px;overflow:hidden; /*BorderDivStyle*/" __AddCode="InsideBorderDiv">
<!--BorderDivContents-->
<p class="Wp-Body-P"><label for="edit_1"><span class="Body-C">name</span></label></p>
</div>
<!--Postamble-->
<!-- Form Edit box edit_1 -->
<!--Preamble-->
<input type="text" id="edit_1" name="name" value="" style="position:absolute; left:103px; top:8px; width:50px; /*Tag Style*/" __AddCode="here">
<!--Postamble-->
<!-- HTML Frame - email txt_32 -->
<!--Preamble-->
<div style="position:absolute;left:8px;top:38px;width:51px;height:18px;overflow:hidden; /*BorderDivStyle*/" __AddCode="InsideBorderDiv">
<!--BorderDivContents-->
<p class="Wp-Body-P"><label for="edit_19"><span class="Body-C">email</span></label></p>
</div>
<!--Postamble-->
<!-- Form Edit box edit_19 -->
<!--Preamble-->
<input type="text" id="edit_19" name="email" value="" style="position:absolute; left:103px; top:38px; width:50px; /*Tag Style*/" __AddCode="here">
<!--Postamble-->
<!-- HTML Frame - message txt_33 -->
<!--Preamble-->
<div style="position:absolute;left:8px;top:68px;width:79px;height:18px;overflow:hidden; /*BorderDivStyle*/" __AddCode="InsideBorderDiv">
<!--BorderDivContents-->
<p class="Wp-Body-P"><label for="text_2"><span class="Body-C">message</span></label></p>
</div>
<!--Postamble-->
<!-- Text Area text_2 -->
<!--Preamble-->
<textarea id="text_2" name="message" rows="2" cols="10" style="position:absolute; left:103px; top:68px; width:100px; height:38px; /*Tag Style*/" __AddCode="here"></textarea>
<!--Postamble-->
<!-- HTML Frame - captcha txt_34 -->
<!--Preamble-->
<div style="position:absolute;left:8px;top:114px;width:69px;height:18px;overflow:hidden; /*BorderDivStyle*/" __AddCode="InsideBorderDiv">
<!--BorderDivContents-->
<p class="Wp-Body-P"><label for="captcha_1"><span class="Body-C">captcha</span></label></p>
</div>
<!--Postamble-->
<!-- Form CAPTCHA captcha_1 -->
<!--Preamble-->
<div style="position:absolute;left:103px;top:114px;width:190px;height:69px; /*MainDivStyle*/" __AddCode="here">
<!--MainDivStart-->
<img src="http://www.serifwebresources.com/util/img_verify.php?gen_word=1&id=captcha_1"><br><input type="text" id="captcha_1" name="captcha_1" size="20" __AddCode="here">
<a title="Listen to audio CAPTCHA" href="http://www.serifwebresources.com/util/audio/audio.php"><img alt="Listen to audio CAPTCHA" style="vertical-align: middle" src="http://www.serifwebresources.com/media/icons/audio-desc.png" border="0"></a><!--MainDivEnd-->
</div>
<!--Postamble-->
<!-- Form Button butn_4 -->
<!--Preamble-->
<input type="submit" style="position:absolute; left:8px; top:191px; width:81px; height:22px; /*Tag Style*/" value="Submit" __AddCode="here">
<!--Postamble-->
</form>
code for PHP (mailform2.php):
<?php
$errors = '';
$myemail = 'myemail';//<-----Put Your email address here.
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']))
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if( empty($errors))
{
$to = $myemail;
$email_subject = "Website Query: $name";
$email_body = "You have received a new message. ".
" Here are the details:\n Name: $name \n Email: $email \n Message \n $message";
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email";
mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: contact-form-thank-you.html');
}
?>
Add your curly braces. you are missing your curly braces. so the name variable is not being set if every POST variable has a value. The other two are because without the braces the if statement ends after the first statement.
Edit, I think your logic is wrong also. You probably want to say if all of these values are not empty then process.
In above code if post of name,email and message empty, then it set name = $_POST['name'];
SO $name variable not set.
So code like these
if your submiting, try to remove
value=''
justSee if it works !
EDITED & ADDED
change the sumbit's
value
into name to be:name='submit'
and you may wanna change php part to look like this:
Okay here i debugged , here is the corrected working code . you have to use isset instead of empty there
Also I covered the if loop you can put mail sending code also inside the if loop there
Hope this helps