markratledge
markratledge

Reputation: 17561

How to add a field in php email form?

I need to add one more field in the php email form below, but I don't know much about php.

I need to add a field for a phone number, and I can see that the new field needs to be entered into the function build_message near the end of the formemail.php script. I've added $phone, but no luck in getting it to work and I get no error messages.

The html for the whole form is

 <form action="formemail.php" method="post">

 <input type="text" name="name" value="name" id="name" size="35" />

etc.... and the phone field is:

 <input type="text" name="phone" value="Phone" id="phone" size="35" /> </form>`

The php form:

 $my_email = "[email protected]";

    $continue = "/";

    $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 = stripslashes($message);

// $phone = stripslashes($phone);

    $subject = "Webmail";

    $headers = "From: " . $_REQUEST['email'];

    mail($my_email,$subject,$message,//$phone, $headers);

Upvotes: 0

Views: 1047

Answers (1)

j08691
j08691

Reputation: 208032

Where did you get this script from? The $message variable is the body of your email and it looks like it's created by running the build_message function. You can get rid of your $phone variable as it appears as if the script automatically finds all the form fields by looking through the input fields ($_REQUEST). I ask where you got the form from to see if there's some sort of simple documentation about this and maybe you need to add something to your form that tells the script what fields to add to your message

Upvotes: 1

Related Questions