Results 1 to 3 of 3

Thread: Secure Online Form

  1. #1
    Join Date
    Mar 2008
    Location
    West Salem, WI
    Posts
    22
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Default Secure Online Form

    I am looking to build a secure online form. I form that bots are not able to submit information and people are allowed to see the information being sent to an email address.

    Right now I have a simple form but it doesn't have any secure features. If someone could help me add or direct me to a form that already takes about this that would be great thanks.

    Here is my simple form >>>

    FORM ITSELF
    <form name="contact" method="post" action="FormToEmail.php">
    <span class="style3">
    <label>Name:</label>
    <input name="name" type="text">
    <br>
    <br>
    <label>Email:</label>
    <input name="email" type="text">
    <br>
    <br>
    <label>Content:</label>
    </span><br>
    <textarea name="content" cols="50" rows="10"></textarea>
    <br>
    <input name="submit" type="Submit" value="Submit">
    </form>


    FORM TO EMAIL

    <?php

    $my_email = "dtswebdesign@gmail.com";

    $continue = "index.html";

    $errors = array();

    if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}

    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);

    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;}}}}}}

    }

    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";}

    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);

    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");}

    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);

    ?>

  2. #2
    Join Date
    Aug 2005
    Location
    Other Side of My Monitor
    Posts
    3,494
    Thanks
    5
    Thanked 105 Times in 104 Posts
    Blog Entries
    1

    Default

    Form Mailer The most secure form mailer I have ever seen/used. Completely customizable, add any type of form area.. text, radio, check box, drop down, etc.. captcha enabled in multiple varieties to give you more control, and the base files can even be stored outside root for een more security.

    You can see one of the many versions I have running here
    {CWoT - Riddle } {Freelance Copywriter} {Learn to Write}
    Follow Me on Twitter: @InkingHubris
    PHP Code:
    $result mysql_query("SELECT finger FROM hand WHERE id=3");
    echo 
    $result

  3. The Following User Says Thank You to BLiZZaRD For This Useful Post:

    Drewsterritz (09-08-2008)

  4. #3
    Join Date
    Jan 2007
    Posts
    51
    Thanks
    2
    Thanked 3 Times in 3 Posts

    Default

    captcha is the key you are looking for on BOT control

    as for security, use https and get a certificate

    What they persona above said should be all you need in a nice little package. Depends how much you like to code.

  5. The Following User Says Thank You to brentnicholas For This Useful Post:

    Drewsterritz (09-08-2008)

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
  •