0

I want to send html form data to my email. but after button click, data is not sending to email id which is specified in my code. can you help me? what is wrong with this code?

<?php
if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "sharayukulkarni18@gmail.com";
$email_subject = "Hello";

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['email']) ||

    !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
// required
$email_from = $_POST['email']; // required
// 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(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 .= "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);  
?>

This is Html form code: I have used post method , as well as called action=".php" file. but still data is not sent to my email id.

    <div class="col-md-6 c-footer-4-p-left">
        <div class="c-feedback">
          <h3 class="c-font-thin">Enquiry</h3>
         <form  method="post" action="send_form_email.php">
        <input type="text" placeholder="Your Name" class="form-control" 
  name="first_name">
                                <input type="text" placeholder="Your Email" 
  class="form-control" name="email">
                                <textarea rows="8" name="comments" 
   placeholder="Write comment here ..." class="form-control"></textarea>
                                <button type="submit" value="Submit" 
   class="btn c-btn-white c-btn-border-2x c-btn-uppercase btn-lg c-btn-bold 
   c-btn-square">Send</button>
                            </form>
                        </div>
                    </div>
  • do you get any errors? – Junius L May 13 '17 at 11:31
  • no. I didnt get any erros. that's why –  May 13 '17 at 11:34
  • Change `@mail(` to just `mail(` - if you're not getting any errors, it's because [the `@` symbol suppresses them](http://php.net/manual/en/language.operators.errorcontrol.php). – Luke Briggs May 13 '17 at 11:35
  • not. still not working –  May 13 '17 at 11:41
  • @SharayuKulkarni sounds like your webhost blocks the mail function - see [this great answer for a list of common PHP mail problems](http://stackoverflow.com/a/24644450/2873896). – Luke Briggs May 13 '17 at 11:46
  • make shure you are submitting your form to the right page you sould have gotten a response 'error or warning' – lotfio May 13 '17 at 11:48
  • I am not getting any error. yes i do got a response "Thanx for submitting your answer" –  May 13 '17 at 11:53
  • I have checked my spam folders too. but nothing –  May 13 '17 at 11:53
  • @SharayuKulkarni your code above doesn't output a thanks message, but it still sounds like your webhost blocks the mail function (assuming this is hosted and not local) – Luke Briggs May 13 '17 at 11:58
  • Also as another point, virtually every webhost blocks spoofing the 'From' header like your code does. – Luke Briggs May 13 '17 at 11:59
  • actually, i edited last lines of my code. which shows this message. what should i have to do now for this mail blocking? –  May 13 '17 at 12:01
  • 1. Check your webhost's policy to see if sending email is allowed, 2. change `'From: '.$email_from."\r\n".` to an email address that your webhost has control of. Like let's say this is example.com, then maybe you create website@example.com and use _that_ as your from field. – Luke Briggs May 13 '17 at 12:04
  • are you using Linux? – Junius L May 13 '17 at 12:16
  • no its windows Os –  May 13 '17 at 12:20

0 Answers0