Bavilo Posted March 4, 2006 Share Posted March 4, 2006 Hey everyone,Have a bit of a "problem" here. I have a form which has several field such as name, address...etc. now...i have a phone number field which consists of 3 fields. phone1, phone2, phone3, for area code...etc.I have a php script that sends me an email with whatever field i specify, but it doesn't have the option for such a phone field. So i did this[code]<?php $phone = array($_POST['phone1'], $_POST['phone2'], $_POST['phone3']); // General Variables $check_referrer="no"; $referring_domains="";// Default Error and Success Page Variables $error_page_title="Error - Missed Fields"; $error_page_text="Please use your browser's back button to return to the form and complete the required fields."; $thanks_page_title="Message Sent"; $thanks_page_text="Thanks for your inquiry";// options to use if hidden field "config" has a value of 0// recipient info $charset[0]="iso-8859-1"; $tomail[0]="mikew88@gmail.com"; $cc_tomail[0]=""; $bcc_tomail[0]="";// Mail contents config $subject[0]="GHS Student Photography"; $reply_to_field[0]="Email"; $reply_to_name[0]="Name"; $required_fields[0]="Name,Address,$phone,City,State,Make,Model,Year,SingleQuantity,SingleDrawerQuantity,DoubleQuantity,DoubleDrawerQuantity,Breed,Comments"; $required_email_fields[0]="Email"; $attachment_fields[0]=""; $return_ip[0]="yes"; $mail_intro[0]="GHS Student Photography"; $mail_fields[0]="Name,Address,City,State,$phone,Email,Make,Model,Year,SingleQuantity,SingleDrawerQuantity,DoubleQuantity,DoubleDrawerQuantity,Breed,Comments"; $mail_type[0]="text"; $mail_priority[0]="1";[/code]I added the upper array for each form field, so it puts em together. And in the lower section where it says $mail_fields, I added the $phone variable. But it wont send, the form tells me to fill out the "" field. yes, it just leaves the required field blank. Not sure if i can include a variable like that in that field. Any help is appreciated. btw, i previewed this code, and it replaces the "$" with "& #036;" it doesn't do that in wordpad, or notepad. Again, weird...Mike Quote Link to comment https://forums.phpfreaks.com/topic/4060-php-form-mail-problem/ Share on other sites More sharing options...
Bavilo Posted March 4, 2006 Author Share Posted March 4, 2006 Is it even possible to put a variable in another variable? because the $phone doesn't seem to work... Quote Link to comment https://forums.phpfreaks.com/topic/4060-php-form-mail-problem/#findComment-14082 Share on other sites More sharing options...
michaellunsford Posted March 4, 2006 Share Posted March 4, 2006 your code looks like a bunch of variable declarations, where is the email portion? Quote Link to comment https://forums.phpfreaks.com/topic/4060-php-form-mail-problem/#findComment-14094 Share on other sites More sharing options...
Bavilo Posted March 4, 2006 Author Share Posted March 4, 2006 [!--quoteo(post=351525:date=Mar 3 2006, 08:22 PM:name=michaellunsford)--][div class=\'quotetop\']QUOTE(michaellunsford @ Mar 3 2006, 08:22 PM) [snapback]351525[/snapback][/div][div class=\'quotemain\'][!--quotec--]your code looks like a bunch of variable declarations, where is the email portion?[/quote]Hi sorry,I didn't post the rest because its ALOT well here it goes...:[code]$send_copy[0]="no"; $send_copy_format[0]="vert_table"; $send_copy_fields[0]="Name,Comments"; $send_copy_attachment_fields[0]=""; $copy_subject[0]="Subject of Copy Email"; $copy_intro[0]="Thanks for your inquiry, the following message has been delivered."; $copy_from[0]="Email"; $copy_tomail_field[0]="Email";// Result options $header[0]=""; $footer[0]=""; $error_page[0]=""; $thanks_page[0]="";// options to use if hidden field "config" has a value of 1// recipient info $charset[1]=""; $tomail[1]=""; $cc_tomail[1]=""; $bcc_tomail[1]="";// Mail contents config $subject[1]=""; $reply_to_field[1]=""; $reply_to_name[1]=""; $required_fields[1]=""; $required_email_fields[1]=""; $attachment_fields[1]=""; $return_ip[1]=""; $mail_intro[1]=""; $mail_fields[1]=""; $mail_type[1]=""; $mail_priority[1]="";// Send back to sender config $send_copy[1]=""; $send_copy_format[1]=""; $send_copy_fields[1]=""; $send_copy_attachment_fields[1]=""; $copy_subject[1]=""; $copy_intro[1]=""; $copy_from[1]=""; $copy_tomail_field[1]="";// Result options $header[1]=""; $footer[1]=""; $error_page[1]=""; $thanks_page[1]="";/////////////////////////////////////////////////////////////////////////// Don't muck around past this line unless you know what you are doing ///////////////////////////////////////////////////////////////////////////ob_start();$config=$_POST["config"];$reply_to_field=$reply_to_field[$config];$reply_to_name=$reply_to_name[$config];$copy_tomail_field=$copy_tomail_field[$config];if($header[$config]!="") include($header[$config]);if($_POST["submit"] || $_POST["Submit"] || $_POST["submit_x"] || $_POST["Submit_x"]){////////////////////////////// begin global functions //////////////////////////////// get visitor IP function getIP() { if(getenv(HTTP_X_FORWARDED_FOR)) $user_ip=getenv("HTTP_X_FORWARDED_FOR"); else $user_ip=getenv("REMOTE_ADDR"); return $user_ip; }// get value of given key function parseArray($key) { $array_value=$_POST[$key]; $count=1; extract($array_value); foreach($array_value as $part_value) { if($count > 1){$value.=", ";} $value.=$part_value; $count=$count+1; } return $value; }// stripslashes and autolink url's function parseValue($value) { $value=preg_replace("/(http:\/\/+.[^\s]+)/i",'<a href="\\1">\\1</a>', $value); return $value; }// html header if used function htmlHeader() { $htmlHeader="<html>\n<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$charset[$config]."\"></head>\n<body>\n<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"600\">\n"; return $htmlHeader; }// html footer if used function htmlFooter() { $htmlFooter="</table>\n</body>\n</html>\n"; return $htmlFooter; }// build verticle table format function buildVertTable($fields, $intro, $to, $send_ip) { $message=htmlHeader(); if($intro != "") $message.="<tr>\n<td align=\"left\" valign=\"top\" colspan=\"2\">".$intro."</td>\n</tr>\n"; $fields_check=preg_split('/,/',$fields); $run=sizeof($fields_check); for($i=0;$i<$run;$i++) { $cur_key=$fields_check[$i]; $cur_value=$_POST[$cur_key]; if(is_array($cur_value)) { $cur_value=parseArray($cur_key); } $cur_value=parseValue($cur_value); $message.="<tr>\n<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>".$cur_key."</b></td>\n<td align=\"left\" valign=\"top\" width=\"100%\">".nl2br($cur_value)."</td>\n</tr>\n"; } if($send_ip=="yes" && $to=="recipient") { $user_ip=getIP(); $message.="<tr>\n<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>Sender IP</b></td>\n<td align=\"left\" valign=\"top\" width=\"100%\">".$user_ip."</td>\n</tr>\n"; } $message.=htmlFooter(); return $message; }// build horizontal table format function buildHorzTable($fields, $intro, $to, $send_ip) { $message=htmlHeader(); $fields_check=preg_split('/,/',$fields); $run=sizeof($fields_check); if($intro != "") $message.="<tr>\n<td align=\"left\" valign=\"top\" colspan=\"".$run."\">".$intro."</td>\n</tr>\n"; $message.="<tr>\n"; for($i=0;$i<$run;$i++) { $cur_key=$fields_check[$i]; $message.="<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>".$cur_key."</b></td>\n"; } if($send_ip=="yes" && $to=="recipient") $message.="<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>Sender IP</b></td>\n"; $message.="</tr>\n"; $message.="<tr>\n"; for($i=0;$i<$run;$i++) { $cur_key=$fields_check[$i]; $cur_value=$_POST[$cur_key]; if(is_array($cur_value)) { $cur_value=parseArray($cur_key); } $cur_value=parseValue($cur_value); $message.="<td align=\"left\" valign=\"top\">".nl2br($cur_value)."</td>\n"; } $message.="</tr>\n"; $message.="<tr>\n"; if($send_ip=="yes" && $to=="recipient") { $user_ip=getIP(); $message.="<td align=\"left\" valign=\"top\">".$user_ip."</td>\n"; } $message.="</tr>\n"; $message.=htmlFooter(); return $message; }// build plain text format function buildTextTable($fields, $intro, $to, $send_ip) { $message=""; if($intro != "") $message.=$intro."\n\n"; $fields_check=preg_split('/,/',$fields); $run=sizeof($fields_check); for($i=0;$i<$run;$i++) { $cur_key=$fields_check[$i]; $cur_value=$_POST[$cur_key]; if(is_array($cur_value)) { $cur_value=parseArray($cur_key); } $cur_value=parseValue($cur_value); $message.="".$cur_key.": ".$cur_value."\n\n"; } if($send_ip=="yes" && $to=="recipient") { $user_ip=getIP(); $message.="Sender IP: ".$user_ip."\n"; } return $message; }// get the proper build fonction function buildTable($format, $fields, $intro, $to, $send_ip) { if($format=="vert_table") $message=buildVertTable($fields, $intro, $to, $send_ip); else if($format=="horz_table") $message=buildHorzTable($fields, $intro, $to, $send_ip); else $message=buildTextTable($fields, $intro, $to, $send_ip); return $message; }// referrer checking security option function checkReferer() { if($check_referrer=="yes") { $ref_check=preg_split('/,/',$referring_domains); $ref_run=sizeof($ref_check); $referer=$_SERVER['HTTP_REFERER']; $domain_chk="no"; for($i=0;$i<$ref_run;$i++) { $cur_domain=$ref_check[$i]; if(stristr($referer,$cur_domain)){$domain_chk="yes";} } } else { $domain_chk="yes"; } return $domain_chk; }// checking required fields and email fields function checkFields($text_fields, $email_fields, $reply_to_name, $reply_to_field) { $error_message=""; if($reply_to_name != "" && (eregi("\r",$reply_to_name) || eregi("\n",$reply_to_name))) $error_message.="<li>A name or text field contains characters that are not allowed for security reasons.</li>\n"; if($reply_to_field != "" && (eregi("\r",$reply_to_field) || eregi("\n",$reply_to_field))) $error_message.="<li>An email address contains characters that are not allowed for security reasons.</li>\n"; if($text_fields != "") { $req_check=preg_split('/,/',$text_fields); $req_run=sizeof($req_check); for($i=0;$i<$req_run;$i++) { $cur_field_name=$req_check[$i]; $cur_field=$_POST[$cur_field_name]; if($cur_field=="") { $error_message.="<li>You are missing the <b>".$req_check[$i]."</b> field</li>\n"; } } } if($email_fields != "") { $email_check=preg_split('/,/',$email_fields); $email_run=sizeof($email_check); for($i=0;$i<$email_run;$i++) { $cur_email_name=$email_check[$i]; $cur_email=$_POST[$cur_email_name]; if($cur_email=="" || !eregi("^[-a-z0-9!#$%&\'*+/=?^_`{|}~]+(\.[-a-z0-9!#$%&\'*+/=?^_`{|}~]+)*@(([a-z]([-a-z0-9]*[a-z0-9]+)?){1,63}\.)+([a-z]([-a-z0-9]*[a-z0-9]+)?){2,63}$",$cur_email)) { $error_message.="<li>You are missing the <b>".$email_check[$i]."</b> field or it is not a valid email address.</li>\n"; } } } return $error_message; }// attachment function function getAttachments($attachment_fields, $message, $content_type, $border) { $att_message="This is a multi-part message in MIME format.\n\n"; $att_message.="--{$border}\n"; $att_message.=$content_type."\n"; $att_message.="Content-Transfer-Encoding: 7bit\n\n"; $att_message.=$message."\n\n"; $att_check=preg_split('/,/',$attachment_fields); $att_run=sizeof($att_check); for($i=0;$i<$att_run;$i++) { $fileatt=$_FILES[$att_check[$i]]['tmp_name']; $fileatt_name=$_FILES[$att_check[$i]]['name']; $fileatt_type=$_FILES[$att_check[$i]]['type']; if (is_uploaded_file($fileatt)) { $file=fopen($fileatt,'rb'); $data=fread($file,filesize($fileatt)); fclose($file); $data=chunk_split(base64_encode($data)); $att_message.="--{$border}\n"; $att_message.="Content-Type: {$fileatt_type}; name=\"{$fileatt_name}\"\n"; $att_message.="Content-Disposition: attachment; filename=\"{$fileatt_name}\"\n"; $att_message.="Content-Transfer-Encoding: base64\n\n".$data."\n\n"; } } $att_message.="--{$border}--\n"; return $att_message; }// function to set content type function contentType($charset, $format) { if($format=="vert_table") $content_type="Content-type: text/html; charset=\"".$charset."\"\n"; else if($format=="horz_table") $content_type="Content-type: text/html; charset=\"".$charset."\"\n"; else $content_type="Content-type: text/plain; charset=\"".$charset."\"\n"; return $content_type; }//////////////////////////// end global functions ////////////////////////////////////////////////////////////// begin procedural scripting ////////////////////////////////// $domain_chk=checkReferer(); if($domain_chk=="yes") { $error_message=checkFields($required_fields[$config], $required_email_fields[$config], $reply_to_name[$config], $reply_to_field[$config]); if($error_message=="") {// build appropriate message format for recipient $content_type=contentType($charset[$config], $mail_type[$config]); $message=buildTable($mail_type[$config], $mail_fields[$config], $mail_intro[$config], "recipient", $return_ip[$config]);// build header data for recipient message if($_POST[$reply_to_name]!="") $extra="From: ".$_POST[$reply_to_name]." <".$_POST[$reply_to_field].">\n"; else $extra="From: ".$_POST[$reply_to_field]."\n"; if($cc_tomail[$config]!="") $extra.="Cc: ".$cc_tomail[$config]."\n"; if($bcc_tomail[$config]!="") $extra.="Bcc: ".$bcc_tomail[$config]."\n"; $extra.="X-Priority: ".$mail_priority[$config]."\n";// get attachments if necessary if($attachment_fields[$config]!="") { $semi_rand=md5(time()); $border="==Multipart_Boundary_x{$semi_rand}x"; $extra.="MIME-Version: 1.0\n"; $extra.="Content-Type: multipart/mixed; boundary=\"{$border}\""; $message=getAttachments($attachment_fields[$config], $message, $content_type, $border); } else { $extra.="MIME-Version: 1.0\n".$content_type; }// send recipient email mail("".$tomail[$config]."", "".stripslashes($subject[$config])."", "".stripslashes($message)."", "$extra");// autoresponse email if necessary if($send_copy[$config]=="yes") {// build appropriate message format for autoresponse $content_type=contentType($charset[$config], $send_copy_format[$config]); $message=buildTable($send_copy_format[$config], $send_copy_fields[$config], $copy_intro[$config], "autoresponder", $return_ip[$config]);// build header data for autoresponse $copy_tomail=$_POST[$copy_tomail_field]; $copy_extra="From: ".$copy_from[$config]."\n";// get autoresponse attachments if necessary if($send_copy_attachment_fields[$config]!="") { $semi_rand=md5(time()); $border="==Multipart_Boundary_x{$semi_rand}x"; $copy_extra.="MIME-Version: 1.0\n"; $copy_extra.="Content-Type: multipart/mixed; boundary=\"{$border}\""; $message=getAttachments($send_copy_attachment_fields[$config], $message, $content_type, $border); } else { $copy_extra.="MIME-Version: 1.0\n".$content_type; }// send autoresponse email mail("$copy_tomail", "".$copy_subject[$config]."", "$message", "$copy_extra"); }// showing thanks pages from a successful submission if($thanks_page[$config]=="") { echo "<p>$thanks_page_title</p>\n"; echo "<p>$thanks_page_text</p>\n"; } else { header("Location: ".$thanks_page[$config]); } } else {// entering error page options from missing required fields if($error_page[$config]=="") { echo "<p>$error_page_title</p>\n"; echo "<ul>\n"; echo $error_message; echo "</ul>\n"; echo "<p>$error_page_text</p>\n"; echo "</ul>\n"; } else { header("Location: ".$error_page[$config]); } } } else {// message if unauthorized domain trigger from referer checking option echo "<p>Sorry, mailing request came from an unauthorized domain.</p>\n"; }//////////////////////////////// end procedural scripting ////////////////////////////////}else{ echo "<p>Error</p>"; echo "<p>No form data has been sent to the script</p>\n";}if($footer[$config]!="") include($footer[$config]);ob_end_flush();?>[/code] Quote Link to comment https://forums.phpfreaks.com/topic/4060-php-form-mail-problem/#findComment-14095 Share on other sites More sharing options...
michaellunsford Posted March 4, 2006 Share Posted March 4, 2006 This is a prewritten script. okay.without pouring over someone elses prewritten code for twenty minutes, here's what I would suggest you "try" first. $phone = $_POST['phone1']."-".$_POST['phone2']."-".$_POST['phone3'];that converts the phone number to a string like xxx-xxx-xxxxapparently your script isn't looking for a variable called $phone -- so you have to figure out what variable it is looking for and insert it there.better solution. write you own mail script. Quote Link to comment https://forums.phpfreaks.com/topic/4060-php-form-mail-problem/#findComment-14100 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.