Page 1 of 1

PHP HTML contact form not working

Posted: Wed Sep 30, 2015 3:57 am
by klio909
Hi all I need help with my contact form. I am new in PHP can anyone have a look at my code please and let me know what I'm doing wrong?

HTML

Code: Select all

<!--contact-->
                        <div class="contact" id="contact">
                            <h3 class="tittle two">Contact us</h3>
                            <div class="contact-top">
                                <div class="col-md-8 contact-top-right">
                                    <form name="contactform" method="post" action="html_form_send.php">
                                        
                                        <input type="text" class="text" value="Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}">
                                        <input type="text" class="text" value="Telephone" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Telephone'; }">
                                        <input type="text" class="text" value="Email Address" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'email';}">
                                        <input type="text" class="text" value="Address" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Address'; }">
                                        <input type="text" class="text" value="Postcode" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Postcode'; }">
                                        <textarea value="Type your enquiry here" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Type your enquiry here'; }">Type your enquiry here</textarea>
                                        <div class="sub-button">
                                            <input type="submit" value="SEND"><a href="http://mywebsite.com/html_form_send.php"></a>
                                        </div>
                                    </form>
PHP

Code: Select all

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

    // CHANGE THE TWO LINES BELOW
    $email_to = "my email";

    $email_subject = "website html form submissions";


    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['Telephone']) ||
        !isset($_POST['email']) ||
        !isset($_POST['Address']) ||
        !isset($_POST['Postcode']) ||
        !isset($_POST['message'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');
    }

    $Name = $_POST['Name']; // required
    $Telephone = $_POST['Telephone']; // required
    $email = $_POST['email']; // required
    $Address = $_POST['Address']; // not required
    $Postcode = $_POST['Postcode']; // 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($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 .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Email Address: ".clean_string($email_from)."\n";
    $email_message .= "Address: ".clean_string($address)."\n";
    $email_message .= "Postcode: ".clean_string($postcode)."\n";
    $email_message .= "Type_your_enquiry_here: ".clean_string($message)."\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);
?>

<!-- place your own success html below -->
Thank you for contacting us. We will be in touch with you shortly.

<?php
}
die();
?>

Re: PHP HTML contact form not working

Posted: Wed Sep 30, 2015 6:20 am
by Celauran
"It's not working" isn't terribly helpful. What isn't working? Is the form submitting? Are you getting unexpected validation errors? Is the form saying the mail was sent but you're not receiving it?

Re: PHP HTML contact form not working

Posted: Wed Sep 30, 2015 6:41 am
by klio909
when i click send i'm redirect to the http://www.mywebsite.com/html_form_send.php but the page is blank and nothing in my mailbox? I hope this make sense...

Re: PHP HTML contact form not working

Posted: Wed Sep 30, 2015 7:59 am
by Celauran
None of your form inputs have the name attribute, so checking for $_POST['email'] is going to fail 100% of the time.

Re: PHP HTML contact form not working

Posted: Wed Sep 30, 2015 8:36 am
by klio909
thanks for your help i do appreciate it I added the name attributes but i'm getting this now

We are very sorry, but there were error(s) found with the form you submitted. These errors appear below.

We are sorry, but there appears to be a problem with the form you submitted.

Please go back and fix these errors.

html:

Code: Select all

<form name="contactform" method="post" action="html_form_send.php">
                                        
                                        <input type="text" name="name" class="text" value="Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}">
                                        <input type="text" name="telephone" class="text" value="Telephone" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Telephone'; }">
                                        <input type="text" name="email" class="text" value="Email Address" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'email';}">
                                        <input type="text" name="address" class="text" value="Address" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Address'; }">
                                        <input type="text" name="postcode" class="text" value="Postcode" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Postcode'; }">
                                        <textarea name="message" value="Type your enquiry here" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Type your enquiry here'; }">Type your enquiry here</textarea>
                                        <div class="sub-button">
                                            <input type="submit" value="SEND"><a href="http://www.lincolnlandlordservices.com/html_form_send.php"></a>
                                        </div>
                                    </form>

Re: PHP HTML contact form not working

Posted: Wed Sep 30, 2015 9:42 am
by Celauran

Code: Select all

    if(!isset($_POST['Name']) ||
        !isset($_POST['Telephone']) ||
        !isset($_POST['email']) ||
        !isset($_POST['Address']) ||
        !isset($_POST['Postcode']) ||
        !isset($_POST['message'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');
    }

Code: Select all

<input type="text" name="name" class="text" value="Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}">
                                        <input type="text" name="telephone" class="text" value="Telephone" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Telephone'; }">
                                        <input type="text" name="email" class="text" value="Email Address" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'email';}">
                                        <input type="text" name="address" class="text" value="Address" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Address'; }">
                                        <input type="text" name="postcode" class="text" value="Postcode" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'Postcode'; }">
name isn't the same as Name, telephone not the same as Telephone, etc.

Re: PHP HTML contact form not working

Posted: Wed Sep 30, 2015 12:29 pm
by klio909
i changed the code and now I'm getting this error : I tried a few different email addresses but still no luck:

We are very sorry, but there were error(s) found with the form you submitted. These errors appear below.

The Email Address you entered does not appear to be valid.


Please go back and fix these errors.

php:

Code: Select all

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

    // CHANGE THE TWO LINES BELOW
    $email_to = "info@mydomain.com";

    $email_subject = "website html form submissions";


    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['telephone']) ||
        !isset($_POST['email']) ||
        !isset($_POST['address']) ||
        !isset($_POST['postcode']) ||
        !isset($_POST['message'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');
    }

    $name = $_POST['name']; // required
    $telephone = $_POST['telephone']; // required
    $email = $_POST['email']; // required
    $address = $_POST['address']; // required
    $postcode = $_POST['postcode']; // not required
    $message = $_POST['message']; // required

    $error_message = "";
    
    $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(!preg_match($string_exp,$address)) {
    $error_message .= 'The Address you entered does not appear to be valid.<br />';
  }
  $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 />';
  }
  if(strlen($message) < 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($name)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Email Address: ".clean_string($email)."\n";
    $email_message .= "Address: ".clean_string($address)."\n";
    $email_message .= "Postcode: ".clean_string($postcode)."\n";
    $email_message .= "Type_your_enquiry_here: ".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);
?>

<!-- place your own success html below -->
Thank you for contacting us. We will be in touch with you shortly.

<?php
}
die();
?>
html:

Code: Select all

 <form name="contactform" method="post" action="html_form_send.php">
                                        
                                        <input type="text" name="name" class="text" value="Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'name';}">
                                        <input type="text" name="telephone" class="text" value="Telephone" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'telephone'; }">
                                        <input type="text" name="email" class="text" value="Email Address" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'email';}">
                                        <input type="text" name="address" class="text" value="Address" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'address'; }">
                                        <input type="text" name="postcode" class="text" value="Postcode" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'postcode'; }">
                                        <textarea name="message" value="Type your enquiry here" onfocus="this.value = '';" onblur="    if (this.value == '') { this.value = 'message'; }">Type your enquiry here</textarea>
                                        <div class="sub-button">
                                            <input type="submit" value="SEND"><a href="http://www.lincolnlandlordservices.com/html_form_send.php"></a>
                                        </div>
                                    </form>