PHP HTML contact form not working

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
klio909
Forum Newbie
Posts: 4
Joined: Wed Sep 30, 2015 3:44 am

PHP HTML contact form not working

Post 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();
?>
User avatar
Celauran
Moderator
Posts: 6427
Joined: Tue Nov 09, 2010 2:39 pm
Location: Montreal, Canada

Re: PHP HTML contact form not working

Post 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?
klio909
Forum Newbie
Posts: 4
Joined: Wed Sep 30, 2015 3:44 am

Re: PHP HTML contact form not working

Post 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...
User avatar
Celauran
Moderator
Posts: 6427
Joined: Tue Nov 09, 2010 2:39 pm
Location: Montreal, Canada

Re: PHP HTML contact form not working

Post by Celauran »

None of your form inputs have the name attribute, so checking for $_POST['email'] is going to fail 100% of the time.
klio909
Forum Newbie
Posts: 4
Joined: Wed Sep 30, 2015 3:44 am

Re: PHP HTML contact form not working

Post 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>
User avatar
Celauran
Moderator
Posts: 6427
Joined: Tue Nov 09, 2010 2:39 pm
Location: Montreal, Canada

Re: PHP HTML contact form not working

Post 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.
klio909
Forum Newbie
Posts: 4
Joined: Wed Sep 30, 2015 3:44 am

Re: PHP HTML contact form not working

Post 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>
Post Reply