0

This code should work with a contact form on a website, whenever I try to run it I get the message that it works, however I don't actually receive anything... Can anyone find out where I messed up?

The first part the php file, and the second is the index. If there is any other info required please ask.

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

    $email_to = "contact@email.com";
    $email_subject = "Your email subject line";

    function died($error) {
        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();
    } 


    if(!isset($_POST['first_name']) ||
        !isset($_POST['bestel_nummer']) ||
        !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
$bestel_nummer = $_POST['bestel_nummer']; // 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-z0-9.'-]+$/";

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,$bestel_nummer)) {
    $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($bestel_nummer)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";

$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>


Thank you for contacting us. We will be in touch with you very soon.

<?php

}
?>

Index.php

<form name="contactform" method="post" 
action="send_form_email.php">
<?php $length = 10;
$randomString = substr(str_shuffle(str_repeat($x='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil($length/strlen($x)) )),1,$length);
?>
<table width="450px">
    <tr>
       <td valign="top">
          <label for="bestel_nummer">Bestel Nummer</label>
      </td>
      <td valign="top">
       <input  type="text" name="bestel_nummer" value="<?php echo         
       $randomString;?>" maxlength="50" size="30">
   </td>
</tr>
<tr>
   <td valign="top">
      <label for="first_name">Naam *</label>
  </td>
  <td valign="top">
      <input  type="text" name="first_name" maxlength="50" size="30">
  </td>
</tr>
<tr>
   <td valign="top">
      <label for="email">Email Adres *</label>
  </td>
  <td valign="top">
      <input  type="text" name="email" maxlength="80" size="30">
  </td>
</tr>
<tr>
   <td valign="top">
      <label for="telephone">Telefoonnummer</label>
  </td>
  <td valign="top">
      <input  type="text" name="telephone" maxlength="30" size="30">
  </td>
</tr>
<tr>
   <td valign="top">
      <label for="comments">Comment *</label>
  </td>
  <td valign="top">
      <textarea  name="comments" maxlength="1000" cols="25" rows="6">            
      </textarea>
  </td>
</tr>
<tr>
   <td colspan="2" style="text-align:center">
      <input type="submit" value="Bestel">  
  </td>
</tr>
</table>
</form>   
dhi_m
  • 1,235
  • 12
  • 21
Doktorwhoe
  • 11
  • 6
  • Remove the `@` before `mail`: `mail($email_to, $email_subject, $email_message, $headers);`. https://www.w3schools.com/php/func_mail_mail.asp And do you mean "Bestellnummer"? – Emaro Nov 24 '17 at 11:00
  • 1
    You are using the variable `$email_to` in the mail function which is not present. You should use `$email_from` as you are taking it from form. And in the `$header` you should give your email id – Code Lღver Nov 24 '17 at 11:01

0 Answers0