|
#1
|
||
|
Don't get the drop down box? Look here.
I know i'm going to get questions on this so i'm going to explain it a bit better here without cluttering up the text in the script.
Drop down box usage: First make sure you set $use_subject_drop to true, eample: $use_subject_drop=true; Next fill in the subjects you want to show in the drop down box. Example: Example 1 PHP Code:
PHP Code:
There MUST be as many values in $subjects as there are in $emails. They also must be in the same order. If I switch around the [b:7a7465bf48]Example 1[/b:7a7465bf48] you would have to re-order the emails also! Example 3 PHP Code:
__________________
04' Dodge SRT-4, Mopar Stage 3, 406whp/436wtq |
#2
|
||
|
Do you know of an easy way to display a specific category by default from another page. For example, if a user clicks on Helpdesk, it will auto-select Helpdesk from the Department drop-down.
Thanks, narayan |
#3
|
||
|
On line 528
Change this: PHP Code:
PHP Code:
Change this: PHP Code:
To This: PHP Code:
__________________
04' Dodge SRT-4, Mopar Stage 3, 406whp/436wtq |
#4
|
||
|
hehe it did not work
Hi, just install the script on my server. I try out the mailtest and manage to send an email. However when finish editing phMailer.php and uploaded it to the server, I was not able to send any message plus the drop down box did not appear. I have paste the edited PhMailer.php, any suggestion would be great
Code:
<?php error_reporting(0); /* //================================================================================ * phphq.Net Custom PHP Scripts * //================================================================================ :- Script Name: phMailer :- Version: 1.5 :- Release Date: Jan 27th 2004 :- Last Update: Dec 9th 2005 :- Author: Scott L. <scott@phphq.net> http://www.phphq.net :- Copyright(c) 2005 All Rights Reserved :- :- This script is free software; you can redistribute it and/or modify :- it under the terms of the GNU General Public License as published by :- the Free Software Foundation; either version 2 of the License, or :- (at your option) any later version. :- :- This script is distributed in the hope that it will be useful, :- but WITHOUT ANY WARRANTY; without even the implied warranty of :- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the :- GNU General Public License for more details. :-http://www.gnu.org/licenses/gpl.txt // This will show in the <title></title> and the form name $websitename="Dedicate A Song"; // Allowed file types. Please remember to keep the format of this array, add the file extensions you want WITHOUT the dot. Please also be aware that certain file types may cause harm to your website and/or server. $allowtypes=array("zip", "7zip"); // What's your email address? Seperate email addresses with commas for multiple email addresses. $myemail="email1@myemail.com"; // What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest). $priority="3"; // Should we allow visitors to attach files? How Many? 0 = Do not allow attachments, 1 = allow only 1 file to be attached, 2 = allow two files etc. $allowattach="1"; // Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time! // 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc.. $max_file_size="1024"; // Maximum file size for all attachments combined in KB NOT Bytes! MAKE SURE your php.ini can handel it, post_max_size, upload_max_filesize, file_uploads, max_execution_time! // 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc.. $max_file_total="2048"; // Value for the Submit Button $submitvalue=" Dedicate "; // Value for the Reset Button $resetvalue=" Reset "; // Default subject? This will be sent if the user does not type in a subject $defaultsubject="Song Dedication"; // Because many requested it, this feature will add a drop down box for the user to select a array of subjects that you specify below. // True = Use this feature, False = do not use this feature $use_subject_drop=True; musi // This is an array of the email subjects the user can pick from. Make sure you keep the format of this array or you will get errors! // Look at http://phphq.net/forums/viewtopic.php?p=836 for examples on how to use this feature. $subjects=array("Request Song","Song Dedication","Send DJ an Email"); // This is an array of the email address for the array above. There must be an email FOR EACH array value specified above. You can have only 1 department if you want. //YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly! The emails also must be in order for what you specify above! // You can also seperate the emails by a comma to sent 1 department to multiple email addresses. $emails=array("email1@myemail.com","email2@myemail.com","email3@myemail.com"); $thanksmessage="Thank you! Your email has been sent, we will respond shortly."; $thanksmessage="<script type=\"text/javascript\">window.location=\"http://www.domain.com/tky.html\";</script>"; // Uncomment (remove the //'s) above to use redirect /* //================================================================================ * ! ATTENTION ! //================================================================================ : Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!! */ // Will get the extension of the users file. For some reason trying to get the actual type of the file caused problems with certain browsers. function get_ext($key) { $key=strtolower(substr(strrchr($key, "."), 1)); // Cause there the same right? $key=str_replace("jpeg","jpg",$key); return $key; } function phattach($file,$name) { global $boundary; $fp=@fopen($file,"r"); $str=@fread($fp, filesize($file)); $str=@chunk_split(base64_encode($str)); $message="--".$boundary."\n"; $message.="Content-Type: application/octet-stream; name=\"".$name."\"\n"; //$message.="Content-disposition: attachment\n"; Thanks goes to someone named Chris (I think, it was awhile ago) for his fix below! $message.="Content-disposition: attachment; filename=\"".$name."\"\n"; $message.="Content-Transfer-Encoding: base64\n"; $message.="\n"; $message.="$str\n"; $message.="\n"; return $message; } //Little bit of security from people forging headers. People are mean sometimes :( function clean($key) { $key=str_replace("\r", "", $key); $key=str_replace("\n", "", $key); $find=array( "/bcc\:/i", "/Content\-Type\:/i", "/Mime\-Type\:/i", "/cc\:/i", "/to\:/i" ); $key=preg_replace($find,"",$key); return $key; } // Safe for register_globals=on =) $error=""; $types=""; $sent_mail=false; // Do some loopy stuff for the valid file types so people can see what types are valid before they try and upload invalid ones. $ext_count=count($allowtypes); $i=0; foreach($allowtypes AS $extension) { //Gets rid of the last comma If($i <= $ext_count-2) { $types .="*.".$extension.", "; } Else { $types .="*.".$extension; } $i++; } unset($i,$ext_count); // why not // If they post the form start the mailin'! If($_POST['submit']==true) { extract($_POST, EXTR_SKIP); // Check the form for errors If(trim($yourname)=="") { $error.="You did not enter your name!<br />"; } If(trim($youremail)=="") { $error.="You did not enter your email!<br />"; } Elseif(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$youremail)) { $error.="Invalid email address.<br />"; } If(trim($emailsubject)=="") { $emailsubject=$defaultsubject; } If(trim($yourmessage)=="") { $error.="You did not enter a message!<br />"; } // Verify Attchment info If($allowattach > 0) { //Loopish For($i=0; $i <= $allowattach-1; $i++) { If($_FILES['attachment']['name'][$i]) { $ext=get_ext($_FILES['attachment']['name'][$i]); $size=$_FILES['attachment']['size'][$i]; $max_bytes=$max_file_size*1024; //Check if the file type uploaded is a valid file type. If(!in_array($ext, $allowtypes)) { $error.= "Invalid extension for your file: ".$_FILES['attachment']['name'][$i].", only ".$types." are allowed.<br />"; //Check the size of each file } Elseif($size > $max_bytes) { $error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big. Max file size is ".$max_file_size."kb.<br />"; } } // If Files } // For //Tally the size of all the files uploaded, check if it's over the ammount. $total_size=array_sum($_FILES['attachment']['size']); $max_file_total_bytes=$max_file_total*1024; If($total_size > $max_file_total_bytes) { $error.="The max size allowed for all your files is ".$max_file_total."kb<br />"; } } // If Allowattach If($error) { $display_message=$error; } Else { If($use_subject_drop AND is_array($subjects) AND is_array($emails)) { $subject_count=count($subjects); $email_count=count($emails); If($subject_count==$email_count) { $myemail=$emails[$emailsubject]; $emailsubject=$subjects[$emailsubject]; } } $boundary=md5(uniqid(time())); //Little bit of security from people forging headers. People are mean sometimes :( $yourname=clean($yourname); $yourmessage=clean($yourmessage); $youremail=clean($youremail); //Headers $headers="From: ".$yourname." <".$youremail.">\n"; $headers.="Reply-To: ".$yourname." <".$youremail.">\n"; $headers.="MIME-Version: 1.0\n"; $headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n"; $headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="X-Priority: ".$priority."\n"; $headers.="Return-Path: <".$youremail.">\n"; $headers.="This is a multi-part message in MIME format.\n"; //Message $message = "--".$boundary."\n"; $message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $message.="Content-Transfer-Encoding: quoted-printable\n"; $message.="\n"; $message.="$yourmessage"; $message.="\n"; //Lets attach to something! =) If($allowattach > 0) { For($i=0; $i <= $allowattach-1; $i++) { If($_FILES['attachment']['name'][$i]) { $message.=phattach($_FILES['attachment']['tmp_name'][$i],$_FILES['attachment']['name'][$i]); } } //For } // If // End the message $message.="--".$boundary."--\n"; // Send the completed message If(!mail($myemail,$emailsubject,$message,$headers)) { Exit("An error has occured, please report this to the website administrator.\n"); } Else { $sent_mail=true; } } // Else } // $_POST /* //================================================================================ * Start the form layout //================================================================================ :- Please know what your doing before editing below. Sorry for the stop and start php.. people requested that I use only html for the form.. */ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Language" content="en-us" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title><?php echo $websitename; ?></title> <style type="text/css"> body{ background-color:#FFFFFF; font-family: Verdana, Arial, sans-serif; font-size: 12pt; color: #000000; } .error_message{ font-family: Verdana, Arial, sans-serif; font-size: 11pt; color: #FF0000; } .thanks_message{ font-family: Verdana, Arial, sans-serif; font-size: 11pt; color: #000000; } a:link{ text-decoration:none; color: #000000; } a:visited{ text-decoration:none; color: #000000; } a:hover{ text-decoration:none; color: #000000; } .table { border-collapse:collapse; border:1px solid #000000; width:500px; } .table_header{ border:1px solid #070707; background-color:#C03738; font-family: Verdana, Arial, sans-serif; font-size: 11pt; font-weight:bold; color: #FFFFFF; text-align:center; padding:2px; } .attach_info{ border:1px solid #070707; background-color:#EBEBEB; font-family: Verdana, Arial, sans-serif; font-size: 8pt; color: #000000; padding:4px; } .table_body{ border:1px solid #070707; background-color:#EBEBEB; font-family: Verdana, Arial, sans-serif; font-size: 10pt; color: #000000; padding:2px; } .table_footer{ border:1px solid #070707; background-color:#C03738; text-align:center; padding:2px; } input,select,textarea { font-family: Verdana, Arial, sans-serif; font-size: 10pt; color: #000000; background-color:#AFAEAE; border:1px solid #000000; } .copyright { border:0px; font-family: Verdana, Arial, sans-serif; font-size: 9pt; color: #000000; text-align:right; } form{ padding:0px; margin:0px; } </style> <script type="text/javascript"> var error=""; e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/; function Checkit(theform) { if(theform.yourname.value=="") { error+="You did not enter your name\n"; } if(theform.youremail.value=="") { error+="You did not enter your email\n"; } else if(!e_regex.test(theform.youremail.value)) { error+="Invalid email address\n"; } if(theform.yourmessage.value=="") { error+="You did not enter your message\n"; } if(error) { alert('**The form returned the following errors:**\n\n' + error); error=""; return false; } else { return true; } } </script> </head> <body> <?If($display_message) {?> <div align="center" class="error_message"><b><?=$display_message;?></b></div> <br /> <?}?> <?If($sent_mail!=true) {?> <form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);"> <table align="center" class="table"> <tr> <td colspan="2" class="table_header" width="100%"><?=$websitename;?></td> </tr> <?If($allowattach > 0) {?> <tr> <td width="100%" class="attach_info" colspan="2"> <b>Valid Attachment Types:</b> <?=$types?><br /> <b>Max size per file:</b> <?=$max_file_size?>kb.<br /> <b>Max combined file size:</b> <?=$max_file_total?>kb. </td> </tr> <?}?> <tr> <td width="30%" class="table_body">Your Name:</td> <td width="70%" class="table_body"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname));?>" /><span class="error_message">*</span></td> </tr> <tr> <td width="30%" class="table_body">Your Email:</td> <td width="70%" class="table_body"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail));?>" /><span class="error_message">*</span></td> </tr> <tr> <td width="30%" class="table_body">Subject:</td> <td width="70%" class="table_body"> <?If($use_subject_drop AND is_array($subjects)) {?> <select name="emailsubject" size="1"> <?while(list($key,$val)=each($subjects)) {?> <option value="<?=intval($key);?>"><?=htmlspecialchars(stripslashes($val));?></option> <?}?> </select> <?} Else {?> <input name="emailsubject" type="text" size="30" value="<?=stripslashes(htmlspecialchars($emailsubject));?>" /> <?}?> </td> </tr> <?For($i=1;$i <= $allowattach; $i++) {?> <tr> <td width="30%" class="table_body">Attach File:</td> <td width="70%" class="table_body"><input name="attachment[]" type="file" size="30" /></td> </tr> <?}?> <tr> <td colspan="2" width="100%" class="table_body">Your Message:<span class="error_message">*</span><br /> <div align="center"> <textarea name="yourmessage" rows="8" cols="60"><?=stripslashes(htmlspecialchars($yourmessage));?></textarea> </div> </td> </tr> <tr> <td colspan="2" width="100%" class="table_footer"> <input type="hidden" name="submit" value="true" /> <input type="submit" value="Send Dedication" /> <input type="reset" value="Reset" /> </td> </tr> </table> </form> <?} Else {?> <div align="center" class="thanks_message"><?=$thanksmessage;?></div> <br /> <br /> <?}?> <?//Please leave this here.. it really dosen't make people hate you or make your site look bad.. ?> <table class="table" style="border:0px;" align="center"> <tr> <td><div class="copyright">©<a href="http://www.phphq.net?script=phMailer" target="_blank" title="Form Mailer Powered By phMailer <www.phphq.net>">phMailer</a></div></td> </tr> </table> </body> </html> Thanks |
#5
|
||
|
When using a drop down menu is it possible to ensure that one of the options is selected.
I am looking to change one of my existing forms to use this script as it gives me nore options. The Selection option is not linked to an email address but is allows the use to select the Section there team competes in (Section A, Section B, Section C etc); however I want to ensure they make a Selection. Is this possible Many thanks |
#6
|
||
|
It's always possible to make sure they select something. phMailer by default makes sure they select a email subject from the drop down so i'm not quite sure if you mean add a custom check or what?
__________________
04' Dodge SRT-4, Mopar Stage 3, 406whp/436wtq |
#7
|
||
|
I probably haven't explained what I'm looking at very well, so you might want to look at the initial page I have put up on my Website, www.stroudskittles.co.uk/resultcard.php.
The idea is that the team can scan in their Result Card and email it to the Result Secretary rather than send by post. Initially I'm running this for one Section only, but hope to expand it to other Sections. What I want to enusre is that the visitor selects an option from the Drop Down Menu rather than leave the default (i.e. selects the Competition, two teams and Date). I can't work out how to do this with php, but then again I've only recently discovered php for forms. Any assistance would be appreciated Many thanks |
#8
|
||
|
See attached.
__________________
04' Dodge SRT-4, Mopar Stage 3, 406whp/436wtq |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
drop gas price is a steal, don't let anyone know you did it lol | Hellfighter | Humor & Jokes | 3 | 01-30-2008 06:03 PM |
Drop-down menus | Chrispy | Web design and Programming | 31 | 02-14-2007 12:27 AM |
drop down menus-PLEASE HELP | darkchaos | Web design and Programming | 8 | 07-20-2003 07:38 PM |
THe-Drop-Zone | Scott | News | 7 | 04-29-2002 06:21 PM |