slimgeo Posted June 30, 2008 Share Posted June 30, 2008 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 More sharing options...
dwntwn Posted July 19, 2008 Share Posted July 19, 2008 Since no one said it.. This should be moved to a web programming section. This doesn't regard system administration. Link to comment Share on other sites More sharing options...
Recommended Posts