Form deliver attached file to email recipient


Recommended Posts

Hello,

I created a form that collects data on a web page and delivers it to an email address. I want the form to deliver also attached file to the email address -- *not* to post the attached file on the related server site. Now, the form is working and but posting the attachment on the server.

Here is the code and I would appreciate your assistance:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Material Submission Form</title>

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<link href="style.css" rel="stylesheet" type="text/css">

<!-- calendar stuff -->

<link rel="stylesheet" type="text/css" href="calendar/calendar-blue2.css" />

<script type="text/javascript" src="calendar/calendar.js"></script>

<script type="text/javascript" src="calendar/calendar-en.js"></script>

<script type="text/javascript" src="calendar/calendar-setup.js"></script>

<!-- END calendar stuff -->

<!-- expand/collapse function -->

<script type=text/javascript>

<!--

function collapseElem(obj)

{

var el = document.getElementById(obj);

el.style.display = 'none';

}

function expandElem(obj)

{

var el = document.getElementById(obj);

el.style.display = '';

}

//-->

</SCRIPT>

<!-- expand/collapse function -->

<!-- expand/collapse function -->

<script type=text/javascript>

<!--

// collapse all elements, except the first one

function collapseAll()

{

var numFormPages = 1;

for(i=2; i <= numFormPages; i++)

{

currPageId = ('mainForm_' + i);

collapseElem(currPageId);

}

}

//-->

</SCRIPT>

<!-- expand/collapse function -->

<!-- validate -->

<script type=text/javascript>

<!--

function validateField(fieldId, fieldBoxId, fieldType, required)

{

fieldBox = document.getElementById(fieldBoxId);

fieldObj = document.getElementById(fieldId);

if(fieldType == 'text' || fieldType == 'textarea' || fieldType == 'password' || fieldType == 'file' || fieldType == 'phone' || fieldType == 'website')

{

if(required == 1 && fieldObj.value == '')

{

fieldObj.setAttribute("class","mainFormError");

fieldObj.setAttribute("className","mainFormError");

fieldObj.focus();

return false;

}

}

else if(fieldType == 'menu' || fieldType == 'country' || fieldType == 'state')

{

if(required == 1 && fieldObj.selectedIndex == 0)

{

fieldObj.setAttribute("class","mainFormError");

fieldObj.setAttribute("className","mainFormError");

fieldObj.focus();

return false;

}

}

else if(fieldType == 'email')

{

if((required == 1 && fieldObj.value=='') || (fieldObj.value!='' && !validate_email(fieldObj.value)))

{

fieldObj.setAttribute("class","mainFormError");

fieldObj.setAttribute("className","mainFormError");

fieldObj.focus();

return false;

}

}

}

function validate_email(emailStr)

{

apos=emailStr.indexOf("@");

dotpos=emailStr.lastIndexOf(".");

if (apos<1||dotpos-apos<2)

{

return false;

}

else

{

return true;

}

}

function validateDate(fieldId, fieldBoxId, fieldType, required, minDateStr, maxDateStr)

{

retValue = true;

fieldBox = document.getElementById(fieldBoxId);

fieldObj = document.getElementById(fieldId);

dateStr = fieldObj.value;

if(required == 0 && dateStr == '')

{

return true;

}

if(dateStr.charAt(2) != '/' || dateStr.charAt(5) != '/' || dateStr.length != 10)

{

retValue = false;

}

else // format's okay; check max, min

{

currDays = parseInt(dateStr.substr(0,2),10) + parseInt(dateStr.substr(3,2),10)*30 + parseInt(dateStr.substr(6,4),10)*365;

//alert(currDays);

if(maxDateStr != '')

{

maxDays = parseInt(maxDateStr.substr(0,2),10) + parseInt(maxDateStr.substr(3,2),10)*30 + parseInt(maxDateStr.substr(6,4),10)*365;

//alert(maxDays);

if(currDays > maxDays)

retValue = false;

}

if(minDateStr != '')

{

minDays = parseInt(minDateStr.substr(0,2),10) + parseInt(minDateStr.substr(3,2),10)*30 + parseInt(minDateStr.substr(6,4),10)*365;

//alert(minDays);

if(currDays < minDays)

retValue = false;

}

}

if(retValue == false)

{

fieldObj.setAttribute("class","mainFormError");

fieldObj.setAttribute("className","mainFormError");

fieldObj.focus();

return false;

}

}

//-->

</SCRIPT>

<!-- end validate -->

</head>

<body onLoad="collapseAll()">

<div id="mainForm">

<div id="formHeader">

<h2 class="formInfo">Material Submission Form</h2>

<p class="formInfo">Please use this form to submit materials. </p>

</div>

<BR/>

<!-- begin form -->

<form method=post enctype=multipart/form-data action=processor.php onSubmit="return validatePage1();">

<ul class=mainForm id="mainForm_1">

<li class="mainForm" id="fieldBox_1">

<label class="formFieldQuestion">Full name *</label>

<input class=mainForm type=text name=field_1 id=field_1 size='40' value=''>

</li>

<li class="mainForm" id="fieldBox_2">

<label class="formFieldQuestion">Email *</label>

<input class=mainForm type=email name=field_2 id=field_2 size=40 value="" style="background-image:url(imgs/email.png); background-repeat: no-repeat; padding: 2px 2px 2px 25px;">

</li>

<li class="mainForm" id="fieldBox_3">

<label class="formFieldQuestion">Organization *</label>

<input class=mainForm type=text name=field_3 id=field_3 size='40' value=''>

</li>

<li class="mainForm" id="fieldBox_4">

<label class="formFieldQuestion">Format</label>

<select class=mainForm name=field_4 id=field_4>

<option value=''></option>

<option value="HTML">HTML</option>

<option value="PDF">PDF</option>

<option value="Text">Text</option>

<option value="Graphic">Graphic</option>

<option value="Chart">Chart</option>

<option value="Audio">Audio</option>

<option value="Video">Video</option>

<option value="Other">Other</option>

</select>

</li>

<li class="mainForm" id="fieldBox_5">

<label class="formFieldQuestion">If other format(s), please specify</label>

<input class=mainForm type=text name=field_5 id=field_5 size='40' value=''>

</li>

<li class="mainForm" id="fieldBox_6">

<label class="formFieldQuestion">Language</label>

<select class=mainForm name=field_6 id=field_6>

<option value=''></option>

<option value="English">English</option>

<option value="French">French</option>

<option value="Spanish">Spanish</option>

<option value="Other">Other</option>

</select>

</li>

<li class="mainForm" id="fieldBox_7">

<label class="formFieldQuestion">If other language(s), please specify</label>

<input class=mainForm type=text name=field_7 id=field_7 size='40' value=''>

</li>

<li class="mainForm" id="fieldBox_8">

<label class="formFieldQuestion">Intended audience</label>

<span>

<input class=mainForm type=checkbox name=field_8[] id=field_8_option_1 value="Doctors" />

<label class=formFieldOption for="field_8_option_1">Doctors</label>

<input class=mainForm type=checkbox name=field_8[] id=field_8_option_2 value="Nurses" />

<label class=formFieldOption for="field_8_option_2">Nurses</label>

<input class=mainForm type=checkbox name=field_8[] id=field_8_option_3 value="Researchers" />

<label class=formFieldOption for="field_8_option_3">Researchers</label>

<input class=mainForm type=checkbox name=field_8[] id=field_8_option_4 value="Field workers" />

<label class=formFieldOption for="field_8_option_4">Field workers</label>

<input class=mainForm type=checkbox name=field_8[] id=field_8_option_5 value="Decision makers" />

<label class=formFieldOption for="field_8_option_5">Decision makers</label>

<input class=mainForm type=checkbox name=field_8[] id=field_8_option_6 value="Others" />

<label class=formFieldOption for="field_8_option_6">Others</label>

</span></li>

<li class="mainForm" id="fieldBox_9">

<label class="formFieldQuestion">Website URL *</label>

<input class=mainForm type=website name=field_9 id=field_9 size=40 value="" style="background-image:url(imgs/website.png); background-repeat: no-repeat; padding: 2px 2px 2px 25px;">

</li>

<li class="mainForm" id="fieldBox_10">

<label class="formFieldQuestion">Attach a file from your computer <a class=info href=#><img src=imgs/tip_small.png border=0><span class=infobox>Browse to a file on your computer and attach it to this form. </span></a></label>

<input class=mainForm type=file name=field_10 id=field_10 value=""><input name="submit" type="submit" value="Upload File">

</li>

<!-- end of this page -->

<!-- page validation -->

<script type=text/javascript>

<!--

function validatePage1()

{

retVal = true;

if (validateField('field_1','fieldBox_1','text',1) == false)

retVal=false;

if (validateField('field_2','fieldBox_2','email',1) == false)

retVal=false;

if (validateField('field_3','fieldBox_3','text',1) == false)

retVal=false;

if (validateField('field_4','fieldBox_4','menu',0) == false)

retVal=false;

if (validateField('field_5','fieldBox_5','text',0) == false)

retVal=false;

if (validateField('field_6','fieldBox_6','menu',0) == false)

retVal=false;

if (validateField('field_7','fieldBox_7','text',0) == false)

retVal=false;

if (validateField('field_8','fieldBox_8','checkbox',0) == false)

retVal=false;

if (validateField('field_9','fieldBox_9','website',1) == false)

retVal=false;

if (validateField('field_10','fieldBox_10','file',0) == false)

retVal=false;

if(retVal == false)

{

alert('Please correct the errors. Fields marked with an asterisk (*) are required');

return false;

}

return retVal;

}

//-->

</SCRIPT>

<!-- end page validaton -->

<!-- next page buttons -->

<li class="mainForm">

<label class="formFieldQuestion"> Type the following: <a class=info href=#><img src=imgs/tip_small.png border=0><span class=infobox>For security purposes, please type the letters in the image.</span></a><BR>

<img src="CaptchaSecurityImages.php" /> </label>

<input id="captchaForm" name="security_code" class="mainForm" type="text"/>

</li>

<li class="mainForm">

<input id="saveForm" class="mainForm" type="submit" value="Submit" />

</li>

</form>

<!-- end of form -->

<!-- close the display stuff for this page -->

</div>

</body>

</html>

-----------------------------

The form is processed by this process.php file:

<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));

session_start();

if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {

// Checkbox handling

$field_8_opts = $_POST['field_8'][0].",". $_POST['field_8'][1].",". $_POST['field_8'][2].",". $_POST['field_8'][3].",". $_POST['field_8'][4].",". $_POST['field_8'][5];

// File upload handling

if($_FILES['field_10']['name']!=''){

$field_10_filename = "file_10_".date("sihdmY").substr($_FILES['field_10']['name'],strlen($_FILES['field_10']['name'])-4);

if(!move_uploaded_file($_FILES['field_10']['tmp_name'], "./files/".$field_10_filename)){

die("File " . $_FILES['field_10']['name'] . " was not uploaded.");

}

}

mail("myname@company.com","Submission Data","Form data:

Full name: " . $_POST['field_1'] . "

Email: " . $_POST['field_2'] . "

Format: " . $_POST['field_3'] . "

If other format, please specify: " . $_POST['field_4'] . "

Organization: " . $_POST['field_5'] . "

Language: " . $_POST['field_6'] . "

If other language, please specify: " . $_POST['field_7'] . "

Intended audience: $field_8_opts

Website URL: " . $_POST['field_9'] . "

Attach a file: ".$where_form_is."files/".$field_10_filename." (original file name: " . $_FILES['field_10']['name'] . ")

powered by phpFormGenerator.

");

include("confirm.html");

}

else {

echo "We're sorry; you entered invalid text of the spam-protector image verification (Captcha) String. Please use the back button on your browser to return to the form and enter valid text. Thank you!";

}

?>

Thanks.

Slim

Link to comment
Share on other sites

  • 3 weeks later...
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.