Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 4 of 4
  1. #1
    New Coder
    Join Date
    Mar 2009
    Location
    Phoenix Arizona
    Posts
    37
    Thanks
    5
    Thanked 0 Times in 0 Posts

    Question Adding html output for Error Messages in contact form...

    Is there anyway to show error messages in html like the successful message is doing? I dont like the white page for error messages.. thanks.

    PHP Code:
    <?php
    if(isset($_POST['email'])) {
        
        
    // EDIT THE 2 LINES BELOW AS REQUIRED
        
    $email_to "admin@whatever.net";
        
    $email_subject "Inquiry from Contact Form";
        
        
        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['email']) ||
            !isset(
    $_POST['website']) ||
            !isset(
    $_POST['comments'])) {
            
    died('We are sorry, but there appears to be a problem with the form you submitted.');        
        }
        
        
    $name $_POST['name']; // required
        
    $email_from $_POST['email']; // required
        
    $website $_POST['website']; // not required
        
    $comments $_POST['comments']; // required
        
        
    $error_message "";
        
    $email_exp "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
      if(!
    eregi($email_exp,$email_from)) {
          
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
      }
        
    $string_exp "^[a-z .'-]+$";
      if(!
    eregi($string_exp,$name)) {
          
    $error_message .= 'Your Name may not contain any numbers or symbols.<br />';
      }
      if(
    strlen($comments) < 5) {
          
    $error_message .= 'The message must contain at least 5 letters.<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 .= "Name: ".clean_string($name)."\n";
        
    $email_message .= "Email: ".clean_string($email_from)."\n";
        
    $email_message .= "Website: ".clean_string($website)."\n";
        
    $email_message .= "Message: ".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);  
    ?>

    <!-- include your own success html here -->

    <?php include("header.php"); ?>
    <img src="images/contact.jpg" alt="" id="subhead" />
    <div id="content">
    <p class="thanks">Thank you for contacting us, we will respond to your e-mail within 24 hours!</p>
    </div>

    <?php include("footer.php"); ?>

    <?
    }
    ?>

  • #2
    New Coder
    Join Date
    Mar 2009
    Location
    Chicago, IL
    Posts
    69
    Thanks
    0
    Thanked 15 Times in 15 Posts
    Try replacing your died() function with:

    PHP Code:
    function died($error) {
            include(
    "header.php");
            
    // 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 />";
            include(
    "footer.php");
            die();
        }
    ?> 

  • #3
    New Coder
    Join Date
    Mar 2009
    Location
    Phoenix Arizona
    Posts
    37
    Thanks
    5
    Thanked 0 Times in 0 Posts
    nah, that just closes the code off completely leaving me with a bunch of text at the top of the page

  • #4
    Regular Coder
    Join Date
    Mar 2009
    Location
    Troutdale, OR
    Posts
    147
    Thanks
    12
    Thanked 6 Times in 6 Posts
    Show us HTML. Does your form reference itself or another page? Were its located? include function might not work in the sub folder, you need to add ../ in front of the link.

    If it reference another page, you need to include your CSS and HTML outside of the <?php ?> tags. (or inside using include function)


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •