Hi there, I have a combobox which returns numerals from a drop down, or reveals a text box for custom entry if ‘other’ is chosen:
e.g. 1, 2, 3, other->______
If 1 is chosen, I get back:
mytext: 1
where name is what was inside of the quotes name=“mytext”
If I choose ‘other’, then populate with 37, I get back:
mytext: other
mytext_other: 37
where the first line shows that ‘other’ was selected, and the second shows what the value of it was (note: I had to use the name, ‘mytext_other’ to get the combobox to work and avoid rewriting the output with nulls).
This then gets passed to a form as below. I need a way to filter out the “mytext: other” line as it’s unecessary, as well as ideally strip off the"_other" from the second line. Somehow I have to filter this out. I think this would be in the build function section but have no clue really.
[php]
<?php
error_reporting(E_ALL ^ E_NOTICE);
/*
The script will handle the “POST” or “GET” methods. It will also handle multiple select inputs and multiple check box inputs. If using these, you must name the field as an array using square brackets, like so: .
** PLEASE NOTE ** If you are using the script to process your own forms (or older FormToEmail forms) you must ensure that the email field is named correctly in your form, like this for example: . Note the lower case “email”. If you don’t do this, the visitor’s email address will not be available to the script and the script won’t be able to check the validity of the email, amongst other things. If you are using the form code below, you don’t need to check for this.
SETUP INSTRUCTIONS
*/
$my_email = "[email protected]";
$from_email = “Web Order”;
$continue = “…/Products.html”;
$errors = array();
// Remove $_COOKIE elements from $_REQUEST.
if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}
// Validate email field.
if(isset($_REQUEST[‘email’]) && !empty($_REQUEST[‘email’]))
{
$_REQUEST[‘email’] = trim($_REQUEST[‘email’]);
if(substr_count($_REQUEST[‘email’],"@") != 1 || stristr($_REQUEST[‘email’]," “) || stristr($_REQUEST[‘email’],”\") || 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
”;} 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.“Thank you.”;
$message = stripslashes($message);
$subject = “Order Pending Confirmation”;
$subject = stripslashes($subject);
if($from_email)
{
$headers = "From: " . $from_email;
$headers .= PHP_EOL;
$headers .= "Reply-To: " . $_REQUEST[‘email’];
}
else
{
$from_name = “”;
if(isset($_REQUEST[‘name’]) && !empty($_REQUEST[‘name’])){$from_name = stripslashes($_REQUEST[‘name’]);}
$headers = “From: {$from_name} <{$_REQUEST[‘email’]}>”;
}
mail($my_email,$subject,$message,$headers);
?>
Thank you <?php if(isset($_REQUEST['name'])){print stripslashes($_REQUEST['name']);} ?>
Your order has been placed.
You will receive a confirmation shortly.
-Thanks in advance for any help.