SitePoint Sponsor

User Tag List

Results 1 to 3 of 3
  1. #1
    SitePoint Enthusiast
    Join Date
    Jan 2003
    Posts
    31
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    PHP Feedback Form

    I've got a feedback form on my site and when I hit submit it looks like it works, I don't get any errors but I don't receive an email. Is my php code correct? Or could it be something with my hosting service?

    Here is the form itself
    Code:
    <form action="FormToEmail.php" method="post" name="ContactForm">
    <label>
    <p>Name:</p> 
    <p><input name="name" type="text" id="name" /></p>
    <p>Email:</p> 
    <p><input name="" type="text" id="email" /></p>
    <p>Comments:</p>
    <p><textarea name="comments" cols="50" rows="10"></textarea></p>
    <p><input type="submit" name="Submit" value="Submit"/></p>
    </label>
    </form>
    Here is the php code
    Code:
    <?php
    $my_email = "mail@pilipinaskomagbagotayo";
     
    $continue = "/";
     
    $errors = array();
    // Remove $_COOKIE elements from $_REQUEST.
    if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}
    // Check all fields for an email header.
    function recursive_array_check_header($element_value)
    {
    global $set;
    if(!is_array($element_value)){if(preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i",$element_value)){$set = 1;}}
    else
    {
    foreach($element_value as $value){if($set){break;} recursive_array_check_header($value);}
    }
    }
    recursive_array_check_header($_REQUEST);
    if($set){$errors[] = "You cannot send an email header";}
    unset($set);
    // Validate email field.
    if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
    {
    if(preg_match("/(%0A|%0D|\n+|\r+|:)/i",$_REQUEST['email'])){$errors[] = "Email address may not contain a new line or a colon";}
    $_REQUEST['email'] = trim($_REQUEST['email']);
    if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Email address is invalid";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Email address is invalid";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Email address is invalid";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Email address is invalid";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Email address is invalid"; break;}}}}}}
    }
    // Check referrer is from same site.
    if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";}
    // Check for a blank form.
    function recursive_array_check_blank($element_value)
    {
    global $set;
    if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}
    else
    {
    foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}
    }
    }
    recursive_array_check_blank($_REQUEST);
    if(!$set){$errors[] = "You cannot send a blank form";}
    unset($set);
    // Display any errors and exit if errors exist.
    if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}
    if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}
    // Build message.
    function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");}
    $message = build_message($_REQUEST);
    $message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL."";
    $message = stripslashes($message);
    $subject = "FormToEmail Comments";
    $headers = "From: " . $_REQUEST['email'];
    mail($my_email,$subject,$message,$headers);
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     
    <head>
    <title>Dreamweaver Tutorial - Contact Form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#ffffff" text="#000000">
    <div>
    <center>
    <b>Thank you <?php print stripslashes($_REQUEST['name']); ?></b>
    <br>Your message has been sent
    <p><a href="<?php print $continue; ?>">Click here to continue</a></p>
    </center>
    </div>
    </body>
    </html>

  2. #2
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,237
    Mentioned
    194 Post(s)
    Tagged
    2 Thread(s)
    If you try a simple
    PHP Code:
    <?php
    mail
    ('[your email address here]''Test''This is a test.');
    ?>
    do you get it (don't forget to check your spam folder)?

    If you temporarily modify your "Thank you" to
    PHP Code:
    <center>
    <b>Thank you <?php print stripslashes($_REQUEST['name']); ?></b>
    <p>From <?php echo $_REQUEST['email']; ?><br>
    <br>Your message<br><?php echo $message?><br> has been sent</p>
    <p><a href="<?php print $continue?>">Click here to continue</a></p>
    </center>
    is everything there?

  3. #3
    SitePoint Enthusiast
    Join Date
    Jan 2003
    Posts
    31
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Mittineague,

    Thanks for replying, you know what i tried to do was change the email address that was supposed to get the email to my personal email address and I received the email

    $my_email = "mail@pilipinaskomagbagotayo";

    to

    $my_email = "mypersonalemailaddress";

    Its probably my hosting service but i'm not sure what to ask them.


Bookmarks

Posting Permissions

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