Jack's Formmail.php
- Started
- Last post
- 18 Responses
- hubb7designs
So I'm using this .php code for a job contact form.
And in the form there needs to be a location for uploading a resume .pdf file.
Everything works, but the emails don't have any attachments. And I can't get this working for the life of me.
Anyone out there have experience with this script, or could you recommend a different one that works well?
Thanks
- hubb7designs0
BUMP....
Haters Never Survive....
ok?
- hubb7designs0
bump... sorry, but I really need an answer. :-/
- plash0
add a link so we can see the code..
- hubb7designs0
^^Yup that's the one I've been trying to use...
http://www.dtheatre.com/scripts/…
- plash0
post your code http://pastebin.com/
- plash0
you should know the drill by now.
1.tell us what you're doing/ where the problem is
2. show code
3. ?????
4. profit.
- hubb7designs0
Here is the html for the form:
<iframe src="http://pastebin.com/embed_iframe.php?i=2enS2hek" style="border:none;width:100%"></iframe>
- hubb7designs0
<form name="info" method="POST" onsubmit="return checkShort()" action="../formmail_test.php" enctype="multipart/form-data">
<div class="formnoreq">First Name:</div><div class="datafield"><input name="fname" type="text" class="textfield" size="60" id="fname"></div>
<div class="formnoreq">
Last Name:</div><div class="datafield"><input name="lname" type="text" class="textfield" size="60" id="lname"></div>
<div class="formnoreq">
Email:</div><div class="datafield"><input name="email" type="text" class="textfield" size="60" id="email"></div>
<div class="formnoreq">Cell Number:</div><div class="datafield"><input name="phone" type="text" class="textfield" size="60" id="phone"></div>
<div class="formnoreq">
City of Residence:</div><div class="datafield"><input name="city" type="text" class="textfield" size="60" id="city"></div>
<div class="formnoreq">
Applying for :</div><div class="datafield">
<label>
<input name="applyfor" type="radio" id="applyfor" value="photographer" checked="CHECKED">
Photographer</label> <label>
<input name="applyfor" type="radio" id="applyfor" value="athlete">
Athlete</label></div>
<div class="formnoreq">
Why you should be considered for the contest: (150 words or less)</div><div class="datafield"><textarea name="comments" cols="60" rows="5" id="comments"></textarea></div>
<div class="formnoreq">
Photo 1:</div><div class="datafield"><input name="attachment1" type="file" size="50" id="attachment1"></div>
<div class="formnoreq">
Photo 2:</div><div class="datafield"><input name="attachment2" type="file" size="50" id="attachment2"></div>
<div class="formnoreq">
Photo 3:</div><div class="datafield"><input name="attachment3" type="file" size="50" id="attachment3"></div>
<div class="formnoreq">
<input type="submit" value="Send" name="submit" onClick="return checkShort();"><input type="reset" value="Reset" name="reset"></div>
</form>
- hubb7designs0
here is the php:
<?
/*
##############################################################################
# PLEASE DO NOT REMOVE THIS HEADER!!!
#
# COPYRIGHT NOTICE
#
# FormMail.php v5.0 (MODIFIED)
# Copyright 2000-2004 Ai Graphics and Joe Lumbroso (c) All rights reserved.
# Created 07/06/2000 Last Modified 10/28/2003
# http://www.dtheatre.com, http://www.dtheatre.com/scripts/…
##############################################################################
#
# This cannot and will not be inforced but I would appreciate a link back
# to any of these sites:
# http://www.dtheatre.com With the following linking words: Movie News
# http://www.dtheatre.com/scripts/… With the following linking words: Form to email
# http://www.dtheatre.com/TV/ With the following linking words: Satellite TV Software
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
##############################################################################
*/
///////////////////////////////////////////
// Added by RJ - Converts _post to _session
///////////////////////////////////////////
session_start();
foreach ($_POST as $key => $value)
{
$_SESSION[$key] = $value;
}////////////////////////////////...
// Added by RJ for using one form for multiple recipients
// This section does not need to be edited.
////////////////////////////////...
$emls = explode(",", $sendto); // sets up $emls array from , separated $sendto$domain = "archangel-int.com"; // Your domain
foreach ($emls as $eml)
{
$reciever[] = $eml. "@" .$domain;
}$recipient = implode("a", $reciever);
// used to put first and last name in header.
$user = '"' .$first_name. " " .$last_name. '"';////////////////////////////////...
// allows you to add a hidden pre-subject while still giving
// submitter ability to enter a subject. This is handy if
// you have multiple contact forms
////////////////////////////////...//$subject = "hello";
if ($presub and $postsubject)
{
$subject = $presub. "--" .$postsubject;
}
else
{
$subject = $postsubject;
}////////////////////////////////...
// END of RJ's Addition - Other changes have been
// made throughout the rest of the script as needed
////////////////////////////////...////////////////////////////////...
// USER CONTROLS
////////////////////////////////...// THIS REMOVED RECIPIENT MODIFIED ABOVE!!!!
// for ultimate security, use this instead of using the form
$recipient = //// bcc emails (separate multiples with commas (,))
$bcc =// referers.. domains/ips that you will allow forms to
// reside on.
$referers = array ('archangel-int.com','38.96.33.6...// banned emails, these will be email addresses of people
// who are blocked from using the script (requested)
$banlist = array (, ,//
$banip = array ('192.168.0.191');// field / value seperator
define("SEPARATOR", ($separator)?$separator:": ");// content newline
define("NEWLINE", ($newline)?$newline:"\n");// formmail version (for debugging mostly)
define("VERSION", "5.0");// our mighty error function.. Modified by RJ, mainly to determine
// if it already has a PHP parm on url it will use & instead of ?
function print_error($missing_field_redir... = 0)
{
if ($type == "missing")
{
if ($missing_field_redirect)
{
if (strstr($missing_field_redirect...
{
header("Location: ".$missing_field_redirect."&erro...
exit;
}
else
{
header("Location: ".$missing_field_redirect."?erro...
exit;
}}
else
{
?>
IIIThe form was not submitted for the following reasons:<p>
<ul><?
echo $reason."\n";
echo $missing_field_redirect;
?></ul>
Please use your browser's back button to return to the form and try again.<?
}}
else
{ // every other error
build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
?>
The form was not submitted because of the following reasons:<p>
<?
}
echo "<br><br>";
echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."</a></small>\n\n";
exit;/* -----[ Original missing field redirector ]-------------
if ($type == "missing")
{
if ($missing_field_redirect)
{
header("Location: $missing_field_redirect&error=$r...
//header("Location: $missing_field_redirect?error=$r...
exit;
}
else
{
?>
The form was not submitted for the following reasons:<p>
<ul><?
echo $reason."\n";
?></ul>
Please use your browser's back button to return to the form and try again.<?
}
}
else
{ // every other error
?>
The form was not submitted because of the following reasons:<p>
<?
}
echo "<br><br>\n";
echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."</a></small>\n\n";
exit;*/
}// function to check the banlist
// suggested by a whole lot of people.. Thanks
function check_banlist($banlist, $email, $missing_field_redirect) {
if (count($banlist)) {
$allow = true;
foreach($banlist as $banned) {
$temp = explode("@", $banned);
if ($temp[0] == "*") {
$temp2 = explode("@", $email);
if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
$allow = false;
} else {
if (trim(strtolower($email)) == trim(strtolower($banned)))
$allow = false;
}
}
}
if (!$allow) {
print_error($missing_field_redir... "banned_email");
}
}// function to check the referer for security reasons.
// contributed by some one who's name got lost.. Thanks
// goes out to him any way.
function check_referer($referers) {
if (count($referers)) {
$found = false;$temp = explode("/",getenv("HTTP_REFERER...
$referer = $temp[2];if ($referer=="") {$referer = $_SERVER['HTTP_REFERER'];
list($remove,$stuff)=split...
list($home,$stuff)=split('/',$st...
$referer = $home;
}for ($x=0; $x < count($referers); $x++) {
if (eregi ($referers[$x], $referer)) {
$found = true;
}
}
if ($referer =="")
$found = false;
if (!$found){
print_error($missing_field_redir..."unauthorized_domain");
error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
}
return $found;
} else {
return true; // not a good idea, if empty, it will allow it.
}
}// Same as above, but for IP address instead
function check_ip($banip, $missing_field_redirect) {
foreach ($banip as $badip)
{if ($badip == $_SERVER['REMOTE_ADDR'])
{
print_error($missing_field_redir..."banned_ip");
error_log("[FormMail.php] Banned IP. (".getenv("REMOTE_ADDR").")", 0);
}
}
}if ($referers)
check_referer($referers, $missing_field_redirect);if ($banlist)
check_banlist($banlist, $email, $missing_field_redirect);if ($banip)
check_ip($banip, $missing_field_redirect);////////////////////////////////...//////////
// Modified by Seriph on Sitepoint for RJ - MUCHO GRASIAS
// Modification allows for any field name arrays that have string keys.
////////////////////////////////...//////////// This function takes the sorts, excludes certain keys and
// makes a pretty content string.
function parse_form($array, $sort = "") {
// build reserved keyword array
$reserved_keys[] = "MAX_FILE_SIZE";
$reserved_keys[] = "required";
$reserved_keys[] = "redirect";
$reserved_keys[] = "require";
$reserved_keys[] = "path_to_file";
$reserved_keys[] = "recipient";
$reserved_keys[] = "subject";
$reserved_keys[] = "sort";
$reserved_keys[] = "style_sheet";
$reserved_keys[] = "bgcolor";
$reserved_keys[] = "text_color";
$reserved_keys[] = "link_color";
$reserved_keys[] = "vlink_color";
$reserved_keys[] = "alink_color";
$reserved_keys[] = "title";
$reserved_keys[] = "missing_field_redirect";
$reserved_keys[] = "env_report";
$reserved_keys[] = "submit";
if (count($array)) {
if (is_array($sort)) {
foreach ($sort as $field) {
$reserved_violation = 0;
for ($ri=0; $ri<count($reserved_keys); $ri++)
if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1;if ($reserved_violation != 1) {
if (is_array($array[$field])) {foreach ($array[$field] as $key=>$val) {
$content .= $field.'['.$key.']'.SEPARATOR.$v...
}} else
$content .= $field.SEPARATOR.$array[$field...
}
}
}
while (list($key, $val) = each($array)) {
$reserved_violation = 0;
for ($ri=0; $ri<count($reserved_keys); $ri++)
if ($key == $reserved_keys[$ri]) $reserved_violation = 1;for ($ri=0; $ri<count($sort); $ri++)
if ($key == $sort[$ri]) $reserved_violation = 1;// prepare content
if ($reserved_violation != 1) {
if (is_array($val)) {
foreach ($val as $key2=>$val2) {
$content .= $key.'['.$key2.']'.SEPARATOR.$va...
}
} else
$content .= $key.SEPARATOR.$val.NEWLINE;
}
}
}
return $content;
}/*
// ORIGINAL parse_form function// This function takes the sorts, excludes certain keys and
// makes a pretty content string.
function parse_form($array, $sort = "") {
// build reserved keyword array
$reserved_keys[] = "MAX_FILE_SIZE";
$reserved_keys[] = "required";
$reserved_keys[] = "redirect";
$reserved_keys[] = "require";
$reserved_keys[] = "path_to_file";
$reserved_keys[] = "recipient";
$reserved_keys[] = "subject";
$reserved_keys[] = "sort";
$reserved_keys[] = "style_sheet";
$reserved_keys[] = "bgcolor";
$reserved_keys[] = "text_color";
$reserved_keys[] = "link_color";
$reserved_keys[] = "vlink_color";
$reserved_keys[] = "alink_color";
$reserved_keys[] = "title";
$reserved_keys[] = "missing_field_redirect";
$reserved_keys[] = "env_report";
$reserved_keys[] = "submit";if (count($array)) {
if (is_array($sort)) {
foreach ($sort as $field) {
$reserved_violation = 0;
for ($ri=0; $ri<count($reserved_keys); $ri++)
if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1;if ($reserved_violation != 1) {
if (is_array($array[$field])) {
foreach ($array[$field] as $key=>$val) {
$content .= $field.'['.$key.']'.SEPARATOR.$v...
for ($z=0;$z<count($array[$field]);$z++)
$content .= $field.SEPARATOR.$array[$field][$z].NEWLINE;}
} else
$content .= $field.SEPARATOR.$array[$field...
}
}
}
while (list($key, $val) = each($array)) {
$reserved_violation = 0;
for ($ri=0; $ri<count($reserved_keys); $ri++)
if ($key == $reserved_keys[$ri]) $reserved_violation = 1;for ($ri=0; $ri<count($sort); $ri++)
if ($key == $sort[$ri]) $reserved_violation = 1;// prepare content
if ($reserved_violation != 1) {
if (is_array($val)) {
for ($z=0;$z<count($val);$z++)
$content .= $key.SEPARATOR.$val[$z].NEWLINE;
} else
$content .= $key.SEPARATOR.$val.NEWLINE;
}
}
}
return $content;
}
*/
// mail the content we figure out in the following steps
function mail_it($content, $subject, $email, $recipient) {
global $attachment_chunk, $attachment_name, $attachment_type, $attachment_sent, $bcc;$ob = "----=_OuterBoundary_000";
$ib = "----=_InnerBoundery_001";// Removed TO: line, was causing multiple messages to be recieved, already specified by the reciepient
$headers = 'From: '.$email. "\r\n"; // from hamidof on sitepoint
$headers .= "Reply-To: ".$email."\n";
if ($bcc) $headers .= "Bcc: ".$bcc."\n";
$headers .= "X-Priority: 1\n";
$headers .= "X-Mailer: DT Formmail".VERSION."\n";
$headers .= "MIME-Version: 1.0\r\n"; // moved here from up higher due to not putting FROM in properly where it was located
$headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".$ob."\"\n";$message = "This is a multi-part message in MIME format.\n";
$message .= "\n--".$ob."\n";
$message .= "Content-Type: multipart/alternative;\n\tboundary=\"".$ib."\"\n\n";
$message .= "\n--".$ib."\n";
$message .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $content."\n\n";
$message .= "\n--".$ib."--\n";
if ($attachment_name && !$attachment_sent) {
$message .= "\n--".$ob."\n";
$message .= "Content-Type: $attachment_type;\n\tname=\"".$attachment_name."\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: attachment;\n\tfilename=\"".$attachment_name."\"\n\n";
$message .= $attachment_chunk;
$message .= "\n\n";
$attachment_sent = 1;
}
$message .= "\n--".$ob."--\n";mail($recipient, $subject, $message, $headers);
}// take in the body building arguments and build the body tag for page display
function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
if ($style_sheet)
echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
if ($title)
echo "<title>$title</title>\n";
if (!$bgcolor)
$bgcolor = "#FFFFFF";
if (!$text_color)
$text_color = "#000000";
if (!$link_color)
$link_color = "#0000FF";
if (!$vlink_color)
$vlink_color = "#FF0000";
if (!$alink_color)
$alink_color = "#000088";
if ($background)
$background = "background=\"$background\"";
echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
}// check for a recipient email address and check the validity of it
// Thanks to Bradley miller () for pointing
// out the need for multiple recipient checking and providing the code.
$recipient_in = split(',',$recipient);
for ($i=0;$i<count($recipient_in);$i++) {
$recipient_to_test = trim($recipient_in[$i]);
if (, $recipient_to_test)) {
print_error("<strong>I NEED VALID RECIPIENT EMAIL ADDRESS ($recipient_to_test) TO CONTINUE</strong>");
}
}// This section is to require one phone number be listed.
if ($requireone)
{
// sets up array $require_one[] with each comma separated $requireone field.
$require_one = explode(",", $requireone);if (in_array ("phone", $require_one))
{
if($home_phone == "" and $cell_phone == "" and $work_phone == "")
{
print_error($missing_field_redir...
}
}if (in_array ("os_version", $require_one))
{
$found = false;
foreach ($os_version as $version)
{
if ($version == "on")
{
$found = true;
}
}
if ($found != true)
{
print_error($missing_field_redir...
}
}}
/*
// Requires one phone number to be listed.
if ($requireone)
{
if($home_phone == "" and $cell_phone == "" and $work_phone == "")
{
print_error($missing_field_redir...
}
}*/
// This is because I originally had it require but too many people
// were used to Matt's Formmail.pl which used required instead.
if ($required)
$require = $required;
// handle the required fields
if ($require) {
// seperate at the commas
$require = ereg_replace( " +", "", $require);
$required = split(",",$require);
for ($i=0;$i<count($required);$i++)
{
$string = trim($required[$i]);
// check if they exsist
if((!(${$string})) || (!(${$string})))
{
// if the missing_fields_redirect option is on: redirect them
if ($missing_field_redirect)
{
if (strstr($missing_field_redirect...
{
// needed if already has a ?something=something
//echo "made it to put &error=";
$missing_field_list = "$required[$i]";
header("Location: ".$missing_field_redirect."&missing=".$missing_field_list);
exit;
}
else
{
// needed if it doesn't
//echo "made it to put ?error=";
$missing_field_list = "$required[$i]";
header("Location: ".$missing_field_redirect."?missing=".$missing_field_list);
exit;
}}
/*if ($missing_fields_redirect) {
header ("Location: $missing_fields_redirect");
exit;
}*/
$require;
$missing_field_list .= "<strong>Missing: $required[$i]</strong><br>\n";
}
}
// send error to our mighty error function
if ($missing_field_list)
print_error($missing_field_list...
}// check the email fields for validity
if (($email) || ($EMAIL)) {
$email = trim($email);
if ($EMAIL) $email = trim($EMAIL);
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z... $email))
print_error($missing_field_redir...
$EMAIL = $email;
}// check zipcodes for validity
if (($ZIP_CODE) || ($zip_code)) {
$zip_code = trim($zip_code);
if ($ZIP_CODE) $zip_code = trim($ZIP_CODE);
if (!ereg("(^[0-9]{5})-([0-9]{4... trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z]:s... trim($zip_code))) && (!ereg("(^[0-9]{5})", trim($zip_code))))
print_error($missing_field_redir...
}// check main phone for validity
if (($PHONE_NO) || ($phone_no)) {
$phone_no = trim($phone_no);
if ($PHONE_NO) $phone_no = trim($PHONE_NO);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $phone_no))
print_error($missing_field_redir...
}// check Home phone for validity
if (($home_no) || ($home_no)) {
$home_no = trim($home_no);
if ($home_no) $home_no = trim($home_no);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $home_no))
print_error($missing_field_redir...
}// check Home phone for validity
if (($home_phone) || ($home_phone)) {
$home_phone = trim($home_phone);
if ($home_phone) $home_phone = trim($home_phone);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $home_phone))
print_error($missing_field_redir...
}// check cell phone for validity
if (($CELL_NO) || ($cell_no)) {
$cell_no = trim($cell_no);
if ($CELL_NO) $cell_no = trim($CELL_NO);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $cell_no))
print_error($missing_field_redir...
}// check cell phone for validity
if (($cell_phone) || ($cell_phone)) {
$cell_phone = trim($cell_phone);
if ($cell_phone) $cell_phone = trim($cell_phone);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $cell_phone))
print_error($missing_field_redir...
}// check fax phone for validity
if (($FAX_NO) || ($fax_no)) {
$fax_no = trim($fax_no);
if ($FAX_NO) $fax_no = trim($FAX_NO);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $fax_no))
print_error($missing_field_redir...
}// check fax phone for validity
if (($fax_phone) || ($fax_phone)) {
$fax_phone = trim($fax_phone);
if ($fax_phone) $fax_phone = trim($fax_phone);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $fax_phone))
print_error($missing_field_redir...
}// check Work phone for validity
if (($work_no) || ($work_no)) {
$work_no = trim($work_no);
if ($work_no) $work_no = trim($work_no);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $work_no))
print_error($missing_field_redir...
}// check Work phone for validity
if (($work_phone) || ($work_phone)) {
$work_phone = trim($work_phone);
if ($work_phone) $work_phone = trim($work_phone);
if(!preg_match("/[0-9]{3}[-]{1...
//if (!ereg("(^(.*)[0-9]{3})(.*)([0-9... $work_phone))
print_error($missing_field_redir...
}// sort alphabetic or prepare an order
if ($sort == "alphabetic") {
uksort($HTTP_POST_VARS, "strnatcasecmp");
} elseif ((ereg('^order:.*,.*', $sort)) && ($list = explode(',', ereg_replace('^order:, $', $sort)))) {
$sort = $list;
}// prepare the content
$content = parse_form($HTTP_POST_VARS, $sort);// check for an attachment if there is a file upload it
if ($attachment_name) {
if ($attachment_size > 0) {
if (!$attachment_type) $attachment_type = "application/unknown";
$content .= "Attached File: ".$attachment_name."\n";
$fp = fopen($attachment, "r");
$attachment_chunk = fread($fp, filesize($attachment));
$attachment_chunk = base64_encode($attachment_chunk...
$attachment_chunk = chunk_split($attachment_chunk);
}
}// check for a file if there is a file upload it
if ($file_name) {
if ($file_size > 0) {
if (!ereg("/$", $path_to_file))
$path_to_file = $path_to_file."/";
$location = $path_to_file.$file_name;
if (file_exists($path_to_file.$file...
$location = $path_to_file.rand(1000,3000...
copy($file,$location);
unlink($file);
$content .= "Uploaded File: ".$location."\n";
}
}// second file (see manual for instructions on how to add more.)
if ($file2_name) {
if ($file_size > 0) {
if (!ereg("/$", $path_to_file))
$path_to_file = $path_to_file."/";
$location = $path_to_file.$file2_name;
if (file_exists($path_to_file.$file...
$location = $path_to_file.rand(1000,3000...
copy($file2,$location);
unlink($file2);
$content .= "Uploaded File: ".$location."\n";
}
}// if the env_report option is on: get eviromental variables
if ($env_report) {
$env_report = ereg_replace( " +", "", $env_report);
$env_reports = split(",",$env_report);
$content .= "\n------ eviromental variables ------\n";
for ($i=0;$i<count($env_reports);$i++) {
$string = trim($env_reports[$i]);
if ($env_reports[$i] == "REMOTE_HOST")
$content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
if ($env_reports[$i] == "REMOTE_USER")
$content .= "REMOTE USER: ". $REMOTE_USER."\n";
if ($env_reports[$i] == "REMOTE_ADDR")
$content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
if ($env_reports[$i] == "HTTP_USER_AGENT")
$content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
}
}// send it off
mail_it(stripslashes($content), ($subject)?stripslashes($subject):"Form Submission", $email, $recipient);
if (file_exists($ar_file)) {
$fd = fopen($ar_file, "rb");
$ar_message = fread($fd, filesize($ar_file));
fclose($fd);
mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Form Submission", ($ar_from)?$ar_from:$recipient, $email);
}// if the redirect option is set: redirect them
if ($redirect) {
header("Location: $redirect");
exit;
} else {
echo "Thank you for your submission\n";
echo "<br><br>\n";
echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."!</a></small>\n\n";
exit;
}// <---------- THE END ----------> //
- you dont read very well.. http://pastebin.com/… that suckerplash
- instrmntl0
try pastie.org, might make to easier to read.
- intVal0
did you read this:
http://www.dtheatre.com/scripts/…
it explains what needs to be done for attachments
- hubb7designs0
<script src='http://pastie.org/1541507.js'></script>
- hubb7designs0
@intVal... I did read through how to handle attachments, but the forms are still not sending the emails with the attachments, only the data that the user enters.
- hubb7designs0
bump
@intVal... I've done what the Guide shows, yet everything is emailed from the Form, except the attachment that the user uploads.
Sorry about my shitty way of posting the code, never used pastebin before.
Any idea what's wrong here?
- vaxorcist0
break it down....
first separate the upload file code, try a one page form + upload file and see if the file is being uploaded.
Then separate the email attachement code, try to have it send a local file, to make sure that part works, then change it to send the file just uploaded.
Also, you may have oddball things like multi-part content headers in the email being sent?
I would start from scratch and use:
http://html-form-guide.com/email…
- vaxorcist0
sometimes the slash n's from hell mess you up in headers and multi-part separators.... \n\n etc.... especially as some text-editors automatically convert linebreaks,etc.... especially if you cut-pasted the code
I use some library code to do this, to avoid some of this randomness...