PDA

View Full Version : Sending multiple checkbox options in contact form


shutterleftopen
02-02-2011, 08:50 PM
here's is my php code:


<?php
$my_email = "myemail@gmail.com";
/*
Enter the continue link to offer the user after the form is sent. If you do not change this, your visitor will be given a continue link to your homepage.
If you do change it, remove the "/" symbol below and replace with the name of the page to link to, eg: "mypage.htm" or "http://www.elsewhere.com/page.htm"
*/
$continue = "index.html";
/*
Step 3:
Save this file (FormToEmail.php) and upload it together with your webpage containing the form to your webspace. IMPORTANT - The file name is case sensitive! You must save it exactly as it is named above! Do not put this script in your cgi-bin directory (folder) it may not work from there.
THAT'S IT, FINISHED!
You do not need to make any changes below this line.
*/
$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_v alue)){$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_o utput)){$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{$mess age_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></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="http://roharikproductions.com/studiorental.html">Click here to continue</a></p>
</center>
</div>
</body>
</html>





and here's my html coding:


<form id="form1" name="form1" method="post" action="rentalmail.php"> <p align="left" class="rightcontact"><strong>
Your Name:<br/>
<input name="name" type="text" id="name" />
<br/>
Your Email:<br/>
<input name="your email" type="text" />
<br/>
Dates you would like to book:<br/>
<input name="dates" type="text" />
</strong><strong><br/>
Total Number of hours:<br/>
<input name="hours" type="text" />
</strong><strong><br/>
Type of lighting you need:<br/>
<select name="lighting" id="lighting" accesskey="" tabindex="">
<option>No Lighitng Equipment Needed</option>
<option>Strobe Lighting</option>
<option>Video Lighting</option>
</select>
<br/>
If using our paper backgrounds,<br/>
which color(s) will you be using?:<br/>
<select name="backgrounds" id="backgrounds" accesskey="" tabindex="">
<option>Chroma Key Green</option>
<option>White</option>
<option>Black</option>
<option>Light Grey</option>
<option>Dark Grey</option>
<option>Blue</option>
<option>Other Colors available upon request</option>
<option>No Paper Backgrounds Needed</option>
</select>
<br/>
How many people will be in attendance?:<br/>
<input name="attendance" type="text" />
</strong><strong><br/>
Will you be traveling to Columbus for the shoot?:<br/>
<input name="traveling" type="text" />
</strong><strong><br/>
Will you be needing any additional services?:<br/>
<input type="checkbox" name="additional services" value="Make-Up" id="CheckboxGroup1_0" />
Make-Up
<br />
<input type="checkbox" name="additional services" value="Stylist" id="CheckboxGroup1_1" />
Stylist
<br />
<input type="checkbox" name="additional services" value="Photo Assistant" id="CheckboxGroup1_2" />
Photo Assistant
<br />
Where did you hear about us?:<br/>
<input name="heard about us" type="text" />
</strong><strong><br/>
Additional Comments/Inquiries: <br/>
<textarea name="comments" cols="35" rows="5"></textarea>
<br/> <input type="submit" name="Submit" value="Submit" />
</strong></p>







I am having trouble figuring out this contact form. not sure which section this should go under cause i don't know where the problem is.

when i fill out the form and select the options for the checkboxes it only send the last checked box with the email. i'm trying to get it to where you can select multiple boxes and both will send. thanks in advance.

johnMoss
02-03-2011, 03:09 AM
You need to be using check boxes instead of options. Using options means only one selection possible per frame...

shutterleftopen
02-04-2011, 05:08 AM
i did. the part that i want to use checkboxes for is using input type as checkbox . but when i fill it out and send it it still only gives me one of the boxes checked. i need it to send multiples. the section i need it for us:

Will you be needing any additional services?:<br/>
<input type="checkbox" name="additional services" value="Make-Up" id="CheckboxGroup1_0" />
Make-Up
<br />
<input type="checkbox" name="additional services" value="Stylist" id="CheckboxGroup1_1" />
Stylist
<br />
<input type="checkbox" name="additional services" value="Photo Assistant" id="CheckboxGroup1_2" />
Photo Assistant
<br />
i'm just not sure if it's the html or the php script i'm using. i main stick to mostly web design, i'm just starting to get into php and forms like this. thanks again for checking it out.

edbr
02-04-2011, 06:01 AM
you will need to add [] to the checkbox name to send the values as an array

shutterleftopen
02-04-2011, 06:18 AM
how would the coding look?

i tried this:

Will you be needing any additional services?:<br/>
<input type="checkbox" name="[]additional services" value="Make-Up" id="CheckboxGroup1_0" />
Make-Up
<br />
<input type="checkbox" name="[]additional services" value="Stylist" id="CheckboxGroup1_1" />
Stylist
<br />

<input type="checkbox" name="[]additional services" value="Photo Assistant" id="CheckboxGroup1_2" />
Photo Assistant
<br />

and doing: name"[additional services]" but that didn't work either.

edbr
02-04-2011, 06:21 AM
additional services[]

shutterleftopen
02-04-2011, 06:31 AM
wow. the only other option. that did it. thank you so much edbr. greatly appreciated.

shutterleftopen
02-06-2011, 08:09 PM
if i were to add in a file box. for people to attach a music file or image file that will send with the email. how would i do that?

just inputting: <input type="file" name="fileField" id="fileField" /> doesnt send the file it just sends the file name..

thanks

edbr
02-07-2011, 12:12 AM
no yu have a different process to upload files there was an example here last week. given . if not ill try to find something when i have more time

shutterleftopen
02-07-2011, 04:01 AM
i can't seem to find it on here. if you could even just direct me to a page that explains it in a good way that would be great.