Tuesday 4 September 2018

PHP mail form

This question already has an answer here:

  • PHP mail function doesn't complete sending of e-mail 24 answers
I copied the message form and PHP mail from a website. But it doesn't seem to work. It does not send anything or make any reaction. I tried to find the error, but I am not familiar with PHP. I tried editing the $emailFrom =... to $_POST['email']; but that doesn't work either..
HTML:
<div id="form-main">
            <div id="form-div">
                <form class="form" id="form1">
                    <p class="name">
                        <input name="name" type="text" class="validate[required,custom[onlyLetter],length[0,100]] feedback-input" placeholder="Naam"/>
                    </p>
                    <p class="email">
                        <input name="email" type="text" class="validate[required,custom[email]] feedback-input" placeholder="E-mail" />
                    </p>
                    <p class="text">
                        <textarea name="text" class="validate[required,length[6,300]] feedback-input" placeholder="Bericht"></textarea>
                    </p>
                    <div class="submit">
                        <input type="submit" value="Verstuur" id="button-blue"/>
                    <div class="ease"></div>
                    </div>
                </form>
            </div>
        </div>

PHP:
    <?php

include 'functions.php';

if (!empty($_POST)){

  $data['success'] = true;
  $_POST  = multiDimensionalArrayMap('cleanEvilTags', $_POST);
  $_POST  = multiDimensionalArrayMap('cleanData', $_POST);

  //your email adress
  $emailTo ="lisa-ederveen@hotmail.com"; //"yourmail@yoursite.com";

  //from email adress
  $emailFrom =$_POST['email']; //"contact@yoursite.com";

  //email subject
  $emailSubject = "Mail from Porta";

  $name = $_POST["name"];
  $email = $_POST["email"];
  $comment = $_POST["comment"];
  if($name == "")
   $data['success'] = false;

 if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
   $data['success'] = false;

 if($comment == "")
   $data['success'] = false;

 if($data['success'] == true){

  $message = "NAME: $name<br>
  EMAIL: $email<br>
  COMMENT: $comment";

  $headers = "MIME-Version: 1.0" . "\r\n";
  $headers .= "Content-type:text/html; charset=utf-8" . "\r\n";
  $headers .= "From: <$emailFrom>" . "\r\n";
  mail($emailTo, $emailSubject, $message, $headers);

  $data['success'] = true;
  echo json_encode($data);
}
}
?>


Your form was incomplete, it missed the method (POST) and action (your php filename)
Try this instead:
<div id="form-main">
            <div id="form-div">
                <form action="sendEmail.php" method="POST" class="form" id="form1">
                    <p class="name">
                        <input name="name" type="text" class="validate[required,custom[onlyLetter],length[0,100]] feedback-input" placeholder="Naam"/>
                    </p>
                    <p class="email">
                        <input name="email" type="text" class="validate[required,custom[email]] feedback-input" placeholder="E-mail" />
                    </p>
                    <p class="text">
                        <textarea name="comment" class="validate[required,length[6,300]] feedback-input" placeholder="Bericht"></textarea>
                    </p>
                    <div class="submit">
                        <input type="submit" value="Verstuur" id="button-blue"/>
                    <div class="ease"></div>
                    </div>
                </form>
            </div>
        </div>


sendEmail.php
    <?php

//include 'functions.php';

if (!empty($_POST)){

  $data['success'] = true;
  //$_POST  = multiDimensionalArrayMap('cleanEvilTags', $_POST);
  //$_POST  = multiDimensionalArrayMap('cleanData', $_POST);

  //your email adress
  $emailTo ="lisa-ederveen@hotmail.com"; //"yourmail@yoursite.com";

  //from email adress
  $emailFrom =$_POST['email']; //"contact@yoursite.com";

  //email subject
  $emailSubject = "Mail from Porta";

  $name = $_POST["name"];
  $email = $_POST["email"];
  $comment = $_POST["comment"];
  if($name == "")
   $data['success'] = false;

 if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
   $data['success'] = false;

 if($comment == "")
   $data['success'] = false;

 if($data['success'] == true){

  $message = "NAME: $name<br>
  EMAIL: $email<br>
  COMMENT: $comment";

  $headers = "MIME-Version: 1.0" . "\r\n";
  $headers .= "Content-type:text/html; charset=utf-8" . "\r\n";
  $headers .= "From: <$emailFrom>" . "\r\n";
  mail($emailTo, $emailSubject, $message, $headers);

  $data['success'] = true;
  echo json_encode($data);
}
}
?>

0 comments:

Post a Comment