i have form which i use on my page for client to be able to send me some messages. Everythings is ok and working. The one thing which is missing is that every form errors and result like (email typ error, first name missing) are showing up on new page. What i would like to have is on same page to have notifications and also result e.g "Your message has been send". I saw in some pages forms input can be highlitet on red if something is putted wrong etc. I read that this can be done either by ajax or jquery but to be honest i am not so familaiar with it. In my solution i am using bootstrap and php. Can you help me to achieve that? Below my current code.
html (using bootstrap):
<form action="send_form_email.php" method="post" class="form-horizontal">
<div class="form-group">
<label for="first_name" class="col-lg-2 control-label">First name</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="first_name" name="first_name" placeholder="Enter you first name">
</div>
</div><!-- End form group -->
<div class="form-group">
<label for="last_name" class="col-lg-2 control-label">Last name</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="last_name" name="last_name" placeholder="Enter you last name">
</div>
</div><!-- End form group -->
<div class="form-group">
<label for="email" class="col-lg-2 control-label">Email</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="email" name="email" placeholder="Enter you Email Address">
</div>
</div><!-- End form group -->
<div class="form-group">
<label for="telephone" class="col-lg-2 control-label">Telephone</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="telephone" name="telephone" placeholder="Enter you phone number">
</div>
</div>
<div class="form-group">
<label for="comments" class="col-lg-2 control-label">Any Message</label>
<div class="col-lg-10">
<textarea name="comments" id="comments" name="comments" class="form-control"
cols="20" rows="10" placeholder="Enter your Message"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
here's php that handle email sending and form validation:
<?php
if(isset($_POST['email']))
{
// CHANGE THE TWO LINES BELOW
$email_to = "myemail#gmail.com";
$email_subject = "Nowy formularz od osoby";
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 errorsbr /><br />";
echo '<input type="button" value="BACK" onclick="history.back();">';
die();
}
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // 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,$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 = "Zawartosc wypelnionego formularza\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($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\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();
if(mail($email_to, $email_subject, $email_message)) {
echo "Dziekuje za kontakt postaram sie odezwac jak najszybciej | Thank you for contacting me. I will be in touch with you very soon.";
echo '<input type="button" value="BACK" onclick="history.back();">';
}else{
echo "Nie wyslano z z powodu nieznanego bledu prosze sprobuj ponownie lub zadzwon do mnie bezposrednio | Form was not send due to unknown reason please go back and try again if it would not help please try to rich me directly on my phone.<br/><br/><br/><br/>";
echo '<input type="button" value="BACK" onclick="history.back();">';
}
}
// die();
Change From
<form action="send_form_email.php" method="post" class="form-horizontal">
To
<form action="" method="post" class="form-horizontal">
Then save your HTML file as PHP and add your PHP code in top of form page
Updated PHP code for custom style error messages.
<?php
if(isset($_POST['email']))
{
// CHANGE THE TWO LINES BELOW
$email_to = "myemail#gmail.com";
$email_subject = "Nowy formularz od osoby";
function died($error)
{
// your error code can go here
// Adding bootstrap style class
echo '<div class="alert alert-warning" role="alert">';
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 />";
//Not needed any more
//echo "Please go back and fix these errorsbr /><br />";
//echo '<input type="button" value="BACK" onclick="history.back();">';
echo '</div>';
die();
}
// New function style the error messages
function styleErrorMsg($string)
{
$string = '<div class="alert alert-warning" role="alert">'.$string.'</div>';
return $string;
}
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments']))
{
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // 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 .= styleErrorMsg('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 .= styleErrorMsg('The First Name you entered does not appear to be valid.<br />');
}
if(!preg_match($string_exp,$last_name))
{
$error_message .= styleErrorMsg('The Last Name you entered does not appear to be valid.<br />');
}
if(strlen($comments) < 2)
{
$error_message .= styleErrorMsg('The Comments you entered do not appear to be valid.<br />');
}
if(strlen($error_message) > 0)
{
died($error_message);
}
$email_message = "Zawartosc wypelnionego formularza\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($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\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();
if(mail($email_to, $email_subject, $email_message))
{
echo "Dziekuje za kontakt postaram sie odezwac jak najszybciej | Thank you for contacting me. I will be in touch with you very soon.";
echo '<input type="button" value="BACK" onclick="history.back();">';
}
else
{
echo "Nie wyslano z z powodu nieznanego bledu prosze sprobuj ponownie lub zadzwon do mnie bezposrednio | Form was not send due to unknown reason please go back and try again if it would not help please try to rich me directly on my phone.<br/><br/><br/><br/>";
echo '<input type="button" value="BACK" onclick="history.back();">';
}
}
// die();
?>
Related
I'm currently working on a project; however, I'm in need of a contact form to have the user submit their information and have the information sent to an e-mail. I feel comfortable with HTML and CSS but not php. I'm trying to follow a tutorial online and it's quite difficult to follow. Could anyone please help?
Thanks!
Also, I would love it if it got sent to my thanks.html page. As in, when the user submits the form, it will redirect the user to my thanks.html page.
HTML:
<h1 id="contact-us">Let us know something!</h1>
<form action="contact.php" class="cf">
<div class="half left cf">
<input type="text" id="input-fname" placeholder="First Name">
<input type="text" id="input-lname" placeholder="Last Name">
<input type="email" id="input-email" placeholder="Email Address">
</div>
<div class="half right cf">
<textarea name="message" type="text" id="input-message" placeholder="Message"></textarea>
</div>
<input type="submit" value="Submit" id="input-submit">
</form>
php:
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "asdf#myemail.com";
$email_subject = "my subject";
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['input-fname']) ||
!isset($_POST['input-lname']) ||
!isset($_POST['input-email']) ||
!isset($_POST['input-message'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['input-fname']; // required
$last_name = $_POST['input-lname']; // required
$email_from = $_POST['input-email']; // required
$comments = $_POST['input-message']; // 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 .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\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);
?>
<?php
}
?>
I've fixed it! Here is the code in case anyone is looking at this and wants to accomplish a contact form like mine.
Thanks!
HTML:
<h1 id="contact-us">Let us know something!</h1>
<form action="contact.php" method='post' class="cf">
<div class="half left cf">
<input type="text" id="fname" name="fname" placeholder="First Name">
<input type="text" id="lname" name="lname" placeholder="Last Name">
<input type="email" id="email" name="email" placeholder="Email Address">
</div>
<div class="half right cf">
<textarea name="message" type="text" id="message" placeholder="Message"></textarea>
</div>
<input type="submit" value="Submit" id="input-submit" name='send'>
</form>
php:
<?php
if(isset($_POST['send'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "hunter.shaw#cei.edu";
$email_subject = "D-Tail Doctor Form Info";
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['fname']) ||
!isset($_POST['lname']) ||
!isset($_POST['email']) ||
!isset($_POST['message'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['fname']; // required
$last_name = $_POST['lname']; // required
$email_from = $_POST['email']; // required
$comments = $_POST['message']; // 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 .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\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);
}
// redirects them to link below
header('Location: thanks.html');
?>
I'm going to be upfront here. I don't really know PHP, but I want to use it to make a simple email form for my website that I'm building. I have put together what I thought would work, but I still get errors when I click submit.
Can anyone just tell me what I'm doing wrong to get it to work?
Here's the code (sorry if I over posted the code, I don't have the slightest clue where the problem is):
Contact.html:
<h1 class="cover-heading">Contact Me</h1>
<div class="form-area">
<form role="form" method="post" action="Contact.php">
<br style="clear:both">
<div class="form-group">
<input type="text" class="form-control" id="name" name="name" placeholder="Name"
required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="email" name="email" placeholder="Email"
required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="mobile" name="mobile" placeholder="Mobile Number"
required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="subject" name="subject" placeholder="Subject"
required>
</div>
<div class="form-group">
<textarea class="form-control" type="textarea" name="message" id="message" placeholder="Message"
maxlength="1337" rows="7"></textarea>
<span class="help-block"><p id="characterLeft" class="help-block ">You have reached the limit</p></span>
</div>
<button type="submit" id="submit" name="submit" class="btn btn-lg btn-secondary ">Submit Form</button>
</form>
</div>
Contact.php:
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "christopherbare#outlook.com";
$email_subject = "ChristopherBare.com 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['name']) ||
!isset($_POST['subject']) ||
!isset($_POST['email']) ||
!isset($_POST['mobile']) ||
!isset($_POST['message'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$name = $_POST['name']; // required
$email = $_POST['email']; // required
$mobile = $_POST['mobile']; // not required
$subject = $_POST['subject']; //required
$message = $_POST['message']; // 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($message) < 2) {
$error_message .= 'The message 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 .= "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Mobile: ".clean_string($mobile)."\n";
$email_message .= "Subject: ".clean_string($subject)."\n";
$email_message .= "Comments: ".clean_string($message)."\n";
// create email headers
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
#mail($email_to, $email_subject, $email_message, $headers);
?>
<?php
}
?>
Here is the error:
"; echo $error."
"; echo "Please go back and fix these errors.
"; die(); } // validation expected data exists if(!isset($_POST['name']) || !isset($_POST['subject']) || !isset($_POST['email']) || !isset($_POST['mobile']) || !isset($_POST['message'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $name = $_POST['name']; // required $email = $_POST['email']; // required $mobile = $_POST['mobile']; // not required $subject = $_POST['subject']; //required $message = $_POST['message']; // 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.
'; } $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.
'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered does not appear to be valid.
'; } if(strlen($message) < 2) { $error_message .= 'The message you entered does not appear to be valid.
'; } 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)."\n"; $email_message .= "Mobile: ".clean_string($mobile)."\n"; $email_message .= "Subject: ".clean_string($subject)."\n"; $email_message .= "Comments: ".clean_string($message)."\n"; // create email headers $headers = 'From: '.$email."\r\n". 'Reply-To: '.$email."\r\n" . 'X-Mailer: PHP/' . phpversion(); #mail($email_to, $email_subject, $email_message, $headers); ?>
Based on your error, look like you doesn't have PHP installed in your system.
You can download PHP here : http://php.net/downloads.php
If you are using Windows OS, I suggest you install xampp for easy use. You can download xampp here : https://www.apachefriends.org/index.html
I have a contact form that is coded in this way:
HTML CODE
<form enctype="text/plain" action="send_form_email.php" method="post" role="form">
<div class="col-md-1 col-sm-1"></div>
<div class="col-md-10 col-sm-10">
<div class="col-md-6 col-sm-6">
<input name="Emri" type="text" class="form-control" id="name" placeholder="Emri">
</div>
<div class="col-md-6 col-sm-6">
<input name="Email" type="email" class="form-control" id="email" placeholder="Email">
</div>
<div class="col-md-12 col-sm-12">
<input name="Sbjekti" type="text" class="form-control" id="subject" placeholder="Subjekti">
</div>
<div class="col-md-12 col-sm-12">
<textarea name="Msazhi" rows="5" class="form-control" id="message" placeholder="Mesazhi"></textarea>
</div>
<div class="col-md-6 col-sm-6">
<input name="Dergo" type="submit" class="form-control" id="submit" value="DERGO">
</div>
</div>
<div class="col-md-1 col-sm-1"></div>
</form>
I have connected it with a php code called send_form_email.php
PHP CODE
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "xhesjanatopalli#gmail.com";
$email_subject = "Your email subject line";
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['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // 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,$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 .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\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);
?>
<?php
}
?>
I have added my email address, but this is not working, when i click submit, send_form_email.php is being downloaded.
Can anyone please help me?
Thanks a lot
PHP is a server-side scripting language, are you running your code in a server that support PHP?
If not, you can easily setup your PHP enviroment with a software like XAMPP
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..
Hello,
I am wondering HOW I can have any and all errors (when the form is submitted) link to a general error page "Link an error.html". The php form I am using now, links to itself and is just an ugly page with no css formatting. Do I need the echos to link to an "error.html"?
I am working with the following HTML FORM :
<div id="contact">
<form name="contactform" method="post" action="send_form_email.php">
<label for="first_name">First <span class="red">*</span></label>
<input type="text" name="first_name" maxlength="50" size="30">
<label for="last_name">Last <span class="red">*</span></label>
<input type="text" name="last_name" maxlength="50" size="30">
<label for="email">Email <span class="red">*</span></label>
<input type="text" name="email" maxlength="80" size="30">
<label for="telephone">Telephone</label>
<input type="text" name="telephone" maxlength="30" size="30">
<label for="comments">Message <span class="red">*</span></label>
<textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea>
<input type="submit" value="Send Message">Email Form
</form>
</div>
This is the PHP File that I am Using :
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "info#glustik.com";
$email_subject = "Project Quote Request";
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['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // 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,$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 .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\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);
?>
<!-- MY THANK YOU SUCCESS PAGE GOES HERE -->
<?php
}
?>
It is better to show the form validation errors along with the form. That way the user will get direct feedback.
You can use an array for all error messages.
<?php
$errors = array();
if(!isset($_POST['email'])) {
$errors['email'] = 'Email is required';
}
//similarly for other errors.
Now in the form
<input type="text" name="last_name" maxlength="50" size="30">
<label for="email">Email <span class="red">*</span></label>
<?= if(isset($errors['email'])) echo $errors['email'] ?>