Adding working checkboxes to a contact form - php

I am trying to add checkboxes to my contact form. I have a working contact form that with 3 checkboxes. When I place the php code that I found on this page (send checkbox value in PHP form) then my checkboxes are no longer clickable BUT when the email sends all three checkboxes appear in the email. I think that there must be a simple fix somewhere but I have spent the whole live long day working on it and this is as far as I have been able to get.
How do I get the checkboxes clickable AND have the selected box be included in the email?
Here is my html
<section class="contact">
<form id="contact" action="html_form_send.php" method="post">
<fieldset title="About you">
<legend><span>About you</span></legend>
<label for="name">Name</label>
<input type="text" name="name" id="name" tabindex="10" class="txtinput" placeholder="Your name" required>
<label for="email">Email</label>
<input type="email" name="email" id="email" tabindex="20" class="txtinput" placeholder="valid email" required>
</fieldset>
<fieldset title="Your turn">
<legend><span>Your turn</span></legend>
<p>What, exactly then, are you after?</p>
<div>
<div class="tag">checkbox1</div>
<input type="checkbox" id="checkbox-1" class="regular-checkbox big-checkbox" value="Yes" />
<label for="salvation"></label>
</div>
<div>
<div class="tag">checkbox2</div>
<input type="checkbox" id="checkbox-2" class="regular-checkbox big-checkbox" value="Yes" />
<label for="question"></label>
</div>
<div>
<div class="tag">checkbox3</div>
<input type="checkbox" id="checkbox-3" class="regular-checkbox big-checkbox" value="Yes" />
<label for="other"></label>
</div>
<label for="comment" class="inline"></label>
<label for="discourse">Write your comments here</label>
<textarea id="discourse" name="discourse" tabindex="30" class="txtinput" rows="7" placeholder="This is where your thoughts go">
</textarea>
<section id="buttons">
<input type="reset" name="reset" id="resetbtn" class="resetbtn" value="Reset">
<input type="submit" name="submit" id="submitbtn" class="submitbtn" tabindex="40" value="Send away!">
<br style="clear:both;">
</section>
And here is my php
<?php
if(isset($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "myemail#email.org";
$email_subject = "website feedback";
function died($error) {
// your error code can go here
echo "We're sorry, but there's errors found with the form you submitted.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['discourse'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$discourse = $_POST['discourse']; // not required $comments = $_POST['comments']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+#[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$name)) {
$error_message .= 'The Name you entered does not appear to be valid.<br />';
}
if(strlen($discourse) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "checkbox1: ".clean_string($checkbox-1)."\n";
$email_message .= "checkbox2: ".clean_string($checkbox-2)."\n";
$email_message .= "checkbox3: ".clean_string($checkbox-3)."\n";
$email_message .= "Comments: ".clean_string($discourse)."\n";
$checkbox1= $_POST['checkbox1'];
if ($checkbox1!= 'Yes') {
$checkbox1= 'No'; }
$checkbox2= $_POST['checkbox2'];
if ($checkbox2!= 'Yes') {
$checkbox2= 'No'; }
$checkbox3= $_POST['checkbox3'];
if ($checkbox3!= 'Yes') {
$checkbox3= 'No'; }
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers);
?>
<?php
$checkbox = $_POST['value']
//Will return either "checkbox1" or "checkbox2" or "checkbox3".
?>
<!-- place your own success html below -->
<script language="javascript" type="text/javascript">
alert('Thank you for contacting us.');
window.location = 'feedbackform.html';
</script>
<?php
}
die();
?>

If the checkboxes aren't clickable then it is most likely that some other element(s) are sitting above them. Using your browser's developer tools is the quickest way to discover this. The PHP does not affect whether they are clickable or not.
If I were to guess it would be that their labels are sitting above them. (Note that empty elements like these should be avoided.)
The checkboxes (and other form elements) must have a name attribute in order to be submitted with the form.

Related

$error_message isn't showing when checkbox is empty

<form name="contactform" method="post" action="send_form_email.php">
<!--Name input-->
<input placeholder="Full Name *" type="text" name="name" maxlength="50">
<br />
<!--Email input-->
<input placeholder="Email Address *" type="email" name="email" maxlength="80">
<br />
<!--Phone number input (not required)-->
<input placeholder="Telephone Number" type="tel" name="telephone" maxlength="15">
<br />
<!--Company name input (not required)-->
<input placeholder="Company" type="text" name="company" maxlength="50">
<br />
<!--Comments & messege input-->
<textarea placeholder="Please include as much information as possible *" name="comments" maxlength="500" cols="25" rows="5"></textarea>
<br />
<!--Check for privacy policy-->
<label class="GDRP">
I consent to having this website store my submitted information so they can respond to my inquiry.
<input type="checkbox" name="GDRP">
</label>
<!--Submit button-->
<input type="submit" value="SUBMIT">
</form>
This is my HTML - I don't know how important it is to helping me find a solution but I figured, why not. I tried cleaning it up so you can get through with helping me as quick as possible. The only important fields are the 'name', 'email', 'comments' and the question at matter 'GDRP'.
<?php if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "email#adress.com";
$email_subject = "www.Adress.com - CONTACT FORM";
function died($error) {
// error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted: ";
echo $error."<br />";
echo "Please fix these errors.";
die();
}
// validation expected data exists
if(
!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['company']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments']) ||
!isset($_POST['GDRP'])
) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$company = $_POST['company']; // not required
$comments = $_POST['comments']; // required
$GDRP = $_POST['GDRP']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+#[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$name)) {
$error_message .= '<br /><br /><font color="red">Full Name</font><br /><br />';
}
if(!preg_match($email_exp,$email_from)) {
$error_message .= '<font color="red">Email Address</font><br /><br />';
}
if(strlen($comments) < 2) {
$error_message .= '<font color="red">Comments</font><br /><br />';
}
if(!empty($GDRP)) {
$error_message .= '<font color="red">GDRP Agreement</font><br /><br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Company: ".clean_string($company)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers);
?>
<body>
Thank you for contacting us. We will be in touch with you as soon as possible.
</body>
<?php
}
?>
My problem is that the checkbox ('GDRP') isn't showing $error_message when it's not filled in. In fact, none show when 'GDRP' is empty. If you fill 'GDRP' but leave the others [required fields] empty all of their $error_message except for 'GDRP' will show.
if(!empty($GDRP)) { // if not empty
$error_message .= '<font color="red">GDRP Agreement</font><br /><br />';
}
looks like you are checking that $GDPR isn't empty, this should be the other way around.
change if(!empty($GDRP)) { to if(empty($GDRP)) {.
Only checked checkboxes send and available in POST. So, looks like in the following lines your script finished and other errors not shown:
!isset($_POST['GDRP'])
) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}

PHP form with checkbox and verification does't work

i"m new here and i don't understand php at all, but i need to do a contact form with checkbox and verification, this is my code ( is a frankenstein code).
I need that my form send an email with the information avoiding spam, and missing information, and when mail arrive has all the details in header like a mail to reply, subject and all.
if you can post an correct code will be wonderful.
thanks in advance
<form name="htmlform" method="post" action="app.php">
<label for="name">*Nombre Completo</label>
<input type="text" name="name" maxlength="150" size="50">
<label for="company">*Empresa</label>
<input type="text" name="company" maxlength="150" size="50">
<label for="telephone">Teléfono</label>
<input type="text" name="telephone" maxlength="150" size="50">
<label for="email">*Email</label>
<input type="text" name="email" maxlength="180" size="50">
<label for="services">*Servicios de Interes</label>
<input type="checkbox" name="services[]" value="apps" />apps<br />
<input type="checkbox" name="services[]" value="Marketing Movil" />Marketing Móvil<br />
<input type="checkbox" name="services[]" value="video juegos" />video Juegos<br />
<label for="comments">*Comentarios</label>
<textarea name="comments" maxlength="1000" cols="40" rows="6"></textarea>
<div class="hide">Leave this empty:<input name="url" /></div>
<center><input class="button large" type="submit" value="Submit Form"></center>
</form>
<?php
// if the url field is empty
if(isset($_POST['url']) && $_POST['url'] == '')
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "my#mail.com";
$email_subject = "Contact from web.com";
function died($error) {
// your error code can go here
echo "There were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['full_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['services']) ||
!isset($_POST['comments']))
{
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$full_name = $_POST['full_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // required
$services = $_POST['services']; // required
$comments = $_POST['comments']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+#[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$full_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Full Name: ".clean_string($full_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Services: ".clean_string($services)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers);
// hacker defense
function clean($var){//request string cleaner
if(get_magic_quotes_gpc()) $var=stripslashes($var); //clean
$var=mysql_real_escape_string($var); //clean
return strip_tags($var, '<b><a>');//returning clean var
}
function hackerDefense(){//thanks to Allen Sanford
// begin hacker defense
foreach ($_POST as &$postvalue){ //checking posts
$postvalue = clean($postvalue);//cleaning the value
}
} // end hacker defense
?>
<!-- include your own success html here -->
<center>
<img src="images/logo.png" />
<br>
<br>
Thank you for contacting us. We will be in touch.<br>
<br>
HOME</center>
<?php
}
?>

How to make checkbox info append to email

I have 3 checkboxes on my contact form. The form works with exception to the checkboxes.. The boxes are selectable but once hitting the "submit" button the selection shows up on the "Thank you for you comment" page. I cannot figure out how to get the checkbox selection to appear in the actual email.
I have tried all sorts of php functions that I have found people to be using in forums and tutorials. Nothing appends the checkbox info to the email. I can't seem to find anyone who knows how to do this.
The 'implode' function does not work. The 'echo' function does not work. The 'array' function does not work. What could be going on?
Here is my html:
<section class="contact">
<form id="contact" action="html_form_send.php" method="post">
<fieldset title="About you">
<legend><span>About you</span></legend>
<label for="name">Name</label>
<input type="text" name="name" id="name" tabindex="10" class="txtinput" placeholder="Your name" required>
<label for="email">Email</label>
<input type="email" name="email" id="email" tabindex="20" class="txtinput" placeholder="valid email" required>
</fieldset>
<fieldset title="Your turn">
<legend><span>Your turn</span></legend>
<p>What, exactly then, are you after?</p>
<div>
<div class="tag">Checkbox1</div>
<input type="checkbox" id="checkbox-1-1" name="option[ ]" class="regular-checkbox big-checkbox" value="salvation" /></input><label for="checkbox-1-1"></label>
</div>
<div>
<div class="tag">Checkbox2</div>
<input type="checkbox" id="checkbox-2-1" name="option[ ]" class="regular-checkbox big-checkbox" value="question" /><label for="checkbox-2-1"></label>
</div>
<div>
<div class="tag">Checkbox3</div>
<input type="checkbox" id="checkbox-3-1" name="option[ ]" class="regular-checkbox big-checkbox" value="other" /><label for="checkbox-3-1"></label>
</div>
<label for="comment" class="inline"></label>
<label for="discourse">Write your comments here</label>
<textarea id="discourse" name="discourse" tabindex="30" class="txtinput" rows="7" placeholder="This is where your thoughts go">
</textarea>
<section id="buttons">
<input type="reset" name="reset" id="resetbtn" class="resetbtn" value="Reset">
<input type="submit" name="submit" id="submitbtn" class="submitbtn" tabindex="40" value="Send away!">
<br style="clear:both;">
</section>
Here is my php:
<?php
if(isset($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "email#email.org";
$email_subject = "website feedback";
function died($error) {
// your error code can go here
echo "We're sorry, but there's errors found with the form you submitted.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['discourse'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$discourse = $_POST['discourse']; // not required $comments = $_POST['comments']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+#[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$name)) {
$error_message .= 'The Name you entered does not appear to be valid.<br />';
}
if(strlen($discourse) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Comments: ".clean_string($discourse)."\n";
if(isset($_POST["submit"])) //Checks if the send button is pressed
{
echo $_POST["name"]; //print your name
echo $_POST["email"]; //print your email
//check all the checkboxes if anyone is checked. this is a lot of work to do.
//All checkboxes are checked one by one
if(isset($_POST["salvation"]))
echo $_POST["salvation"];
if(isset($_POST["question"]))
echo $_POST["question"];
if(isset($_POST["other"]))
echo $_POST["other"]; }
if(isset($_POST["submit"])) //Checks if the send button is pressed
{
echo $_POST["name"]; //print your name
echo $_POST["email"]; //print your email
if(isset($_POST["option"])) //checks if any interest is checked
{
foreach($_POST["option"] as $value) //Iterate the interest array and get the values
{
echo $value; //print the values } } }
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers); }
?>
<!-- place your own success html below -->
<script language="javascript" type="text/javascript">
alert('Thank you for contacting us.');
window.location = 'feedbackform.html';
</script>
<?php
die();
?>
<div class="tag">Checkbox2</div>
<input type="checkbox" id="checkbox-2-1" name="option1" class="regular-checkbox big-checkbox" value="yes" /><label for="checkbox-2-1"></label>
</div>
Try naming each option checkbox then retrieve them as follows:
if(isset($_POST['option1']) && $_POST['option1'] == 'yes'){
echo "Yes, this was checked";
}else{
echo "No, this wasn't checked";
}
What that if statement does is checks if that option is set, meaning has value, and grabs the value if it is set. Then it outputs accordingly

E-mailing form data with php

I have serached through previous questions and have had no luck finding the answer.
I want to simply send the imformation from my form to be e-mailed to me.here is my code for form.
<form action="http://bikesnwines.com/html_form_send.php" method="post" name="form1"> <strong>Your Details:</strong>Full name:
<input type="text" maxlength="50" name="fullname" size="30" />
E-mail Address:
<input type="text" maxlength="50" name="email_from" size="30" />Date of Visit:
<input type="text" maxlength="50" name="date" size="30" />
<strong>Accomodation:</strong>
<img class="size-medium wp-image-1382 alignnone" alt="val-du-charron-12+ (1)" src="http://www.bikesnwines.com/wp-content/uploads/2013/07/val-du-charron-12+-1- 300x125.jpg" width="400" height="170" />
<p style="text-align: left;"><strong><a title="Val Du Charron" href="http://vdcwines.com/" target="_blank">Val Du Charron Wine Estate</a></strong></p>
<p style="text-align: left;"><strong>Length of Stay:</strong>1 Night Stay only<strong></strong></p>
<p style="text-align: left;"><strong>Optional Extra's:</strong></p>
<p style="text-align: left;"><input type="checkbox" name="extra1" value="MTB" />Mountain Biking Tours<input type="checkbox" name="extra1" value="Spa" />Spa Treatements<input type="checkbox" name="extra1" value="Olive" />Olive Grove Tour and Tasting<input type="checkbox" name="extra1" value="Fishing" />Bass Fishing<input type="checkbox" name="extra1" value="HorseRide" />Horse Riding</p>
<strong>Cycling Levels:</strong>
<input type="radio" name="difficulty" value="Relaxed" />Relaxed
<input type="radio" name="difficulty" value="Moderate" />Moderate
<input type="radio" name="difficulty" value="Challenging" />Challenging
<strong>Transport:</strong>
<input type="radio" name="transport" value="Car Hire" />Car Hire
<input type="radio" name="transport" value="Transfers" />Airport or other Transfers
<input type="radio" name="transport" value="Self Drive" />Self Drive
Comments:
<textarea cols="25" maxlength="1000" name="comments" rows="6"></textarea>
<input type="submit" value="Enquire Now" />
</form>
and the php I am using
<?php
if(isset($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "bookings#bikesnwines.com";
$email_subject = "Wellington Overnight Requests";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['fullname']) ||
isset($_POST['email_from']) ||
isset($_POST['date']) ||
isset($_POST['extra1']) ||
!isset($_POST['difficulty']) ||
!isset($_POST['transport']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$fullname = $_POST['fullname']; // required
$email_from = $_POST['email_from']; // required
$date = $_POST['date']; // required
$extra1 = $_POST['extra1']; // not required
$difficulty = $_POST['difficulty']; // required
$transport = $_POST['transport']; // required
$comments = $_POST['comments']; // not required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+#[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$fullname)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Full Name: ".clean_string($fullname)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Date of Stay: ".clean_string($date)."\n";
$email_message .= "Optional Extra's: ".clean_string($extra1)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers);
//redirect to thank for registering page
header( 'Location: http://raceinterface.co.za/thank-you-for-registering/' ) ;
}
?>
when you submit it just opens a blank page..
I'm a bit blonde.. but super stuck..
Thanks
For a start, you do not have a field named simply 'email'. Try changing if(isset($_POST['email'])) { to if(isset($_POST['email_from'])) {
The name in the form for the input email is 'email_from', and in the php code, you have written 'if (!isset($_POST['email'])' . Is this a typo?
I don't see a variable email in your form.
So if you check in your php for $_POST['email'] it is never set.
You should build in an "else" after } in your .php.

PHP Email form not working properly

I am very new at php but even so, this does not make any sense to me:
I have an HTML page containing the php form as follows:
...
<article id="content"><div class="ic">Here comes the contact form!</div>
<div class="wrapper">
<h2>Contact form</h2>
<form method="post" id="ContactForm" name="myemailform" action="sendemail.php">
<div>
<div class="wrapper">
<span>Nume:</span>
<div class="bg"><input type="text" class="input" name="myname"></div>
</div>
<div class="wrapper">
<span>Adresa:</span>
<div class="bg"><input type="text" class="input" name="myadresa" ></div>
</div>
<div class="wrapper">
<span>Email:</span>
<div class="bg"><input type="text" class="input" name="myemail" ></div>
</div>
<div class="textarea_box">
<span>Mesaj:</span>
<div class="bg"><textarea name="textarea" cols="1" rows="1" name="mymesaj"></textarea></div>
</div>
<a href="#" class="button1" name='submit' value="submit" onclick='javascript: document.myemailform.binset=2; document.myemailform.submit();'>Send message</a>
</div>
</form>
</div>
</article>
And the action sendemail.php is as follows:
<?php
if(isset($_POST['submit'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "myreal_email#email.com";
$email_subject = "Message from contact form";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['myname']) ||
!isset($_POST['myadresa']) ||
!isset($_POST['myemail']) ||
!isset($_POST['mymesaj'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['myname']; // required
$last_name = $_POST['myadresa']; // required
$email_from = $_POST['myemail']; // required
$comments = $_POST['mymesaj']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+#[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($first_name)."\n";
$email_message .= "Adresa: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Mesaj efectiv: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- include your own success html here -->
Thank you for contacting us. We will be in touch with you very soon.
<?php
}
?>
Now, the problem is that I receive the email, the subject is ok, the sender email is ok, but the message is empty... no $email_message is received.
Why is this happening?
Any help would be appreciated.
Thank you
the problem is with your
<textarea name="textarea" cols="1" rows="1" name="mymesaj"></textarea>
there are two names with the textarea check it.
<textarea cols="1" rows="1" name="mymesaj"></textarea>
if you are usinh HTML 5 or higher version...use 'required' in the input tags...which will automatically validate the input data is present or not...
like this:
<input type="text" class="input" name="myname" required>
and for email validation give the input type as email...not text
like this:
<input type="email" class="input" name="myemail" required >
Also try ajax,jquery for further form validations..

Categories