Php 表单到电子邮件、文件上传困难
我对Php 表单到电子邮件、文件上传困难,php,forms,file,email,upload,Php,Forms,File,Email,Upload,我对php比较陌生,但我会边学边学。我正在为我的企业创建一份租户申请表,并已将该表与基本文本、下拉字段等一起使用。现在我需要将文件上传到该表,并将其发送到我的电子邮件 任何人都可以抽出时间来添加文件上传作为附件,因为我已经尝试了一些不同的代码片段,但与之斗争 表单的HTML非常长,如果需要,我会发布它,但我已将enctype=“multipart/form data”添加到form选项卡中,inout的名称是file\u upload 这是我的表单处理程序,它可能需要很长的一段时间,但它目前可以
php
比较陌生,但我会边学边学。我正在为我的企业创建一份租户申请表,并已将该表与基本文本、下拉字段等一起使用。现在我需要将文件上传到该表,并将其发送到我的电子邮件
任何人都可以抽出时间来添加文件上传作为附件,因为我已经尝试了一些不同的代码片段,但与之斗争
表单的HTML
非常长,如果需要,我会发布它,但我已将enctype=“multipart/form data”
添加到form
选项卡中,inout的名称是file\u upload
这是我的表单处理程序,它可能需要很长的一段时间,但它目前可以工作
if(isset($_POST['email'])) {
$email_to = "REMOVED";
$email_subject = "TENANT APPLICATION";
function died($error) {
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
$property = $_POST['property'];
$title = $_POST['title'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$dateofbirth = $_POST['dateofbirth'];
$nationality = $_POST['nationality'];
$email_from = $_POST['email'];
$telephone = $_POST['telephone'];
$natins = $_POST['natins'];
$smoker = $_POST['smoker'];
$bankrupt = $_POST['bankrupt'];
$ccj = $_POST['ccj'];
$currentaddress = $_POST['currentaddress'];
$tenancy = $_POST['tenancy'];
$timeataddress = $_POST['timeataddress'];
$employmentstatus = $_POST['employmentstatus'];
$company = $_POST['company'];
$positionheld = $_POST['positionheld'];
$salary = $_POST['salary'];
$timeatemployer = $_POST['timeatemployer'];
$selfemployedinfo = $_POST['selfemployedinfo'];
$selfemployedincome = $_POST['selfemployedincome'];
$otheroccupantsover18 = $_POST['otheroccupantsover18'];
$otheroccupantsunder18 = $_POST['otheroccupantsunder18'];
$pets = $_POST['pets'];
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Property applied for: ".clean_string($property)."\n\n";
$email_message .= "APPLICANT DETAILS.\n\n";
$email_message .= "Title: ".clean_string($title)."\n";
$email_message .= "First name: ".clean_string($first_name)."\n";
$email_message .= "Last name: ".clean_string($last_name)."\n";
$email_message .= "Date of birth: ".clean_string($dateofbirth)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "National insurance : ".clean_string($natins)."\n";
$email_message .= "Smoker : ".clean_string($smoker)."\n";
$email_message .= "Bankrupt : ".clean_string($bankrupt)."\n";
$email_message .= "CCJ's : ".clean_string($ccj)."\n\n";
$email_message .= "CURRENT ADDRESS DETAILS.\n\n";
$email_message .= "Current address: ".clean_string($currentaddress)."\n";
$email_message .= "Type of tenancy: ".clean_string($tenancy)."\n";
$email_message .= "Time at current address: ".clean_string($timeataddress)."\n\n";
$email_message .= "PREVIOUS ADDRESS DETAILS.\n\n";
$email_message .= "Previous address 1: ".clean_string($previousaddressone)."\n";
$email_message .= "Previous address 2: ".clean_string($previousaddresstwo)."\n\n";
$email_message .= "EMPLOYMENT.\n\n";
$email_message .= "Employment status: ".clean_string($employmentstatus)."\n\n";
$email_message .= "EMPLOYED DETAILS.\n\n";
$email_message .= "Company: ".clean_string($company)."\n";
$email_message .= "Position held: ".clean_string($positionheld)."\n";
$email_message .= "Salary: ".clean_string($salary)."\n";
$email_message .= "Time with employer: ".clean_string($timeatemployer)."\n\n";
$email_message .= "SELF EMPLOYED DETAILS.\n\n";
$email_message .= "Details of self employment: ".clean_string($selfemployedinfo)."\n";
$email_message .= "Average net income of past 3 years: ".clean_string($selfemployedincome)."\n\n";
$email_message .= "OTHER OCCUPANTS.\n\n";
$email_message .= "Other occupants OVER 18: ".clean_string($otheroccupantsover18)."\n";
$email_message .= "Other occupants UNDER 18: ".clean_string($otheroccupantsunder18)."\n";
$email_message .= "Details of any pets: ".clean_string($pets)."\n\n";
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<?php include 'thankyouapplicationform.php';?>
<?php
}
if(设置($_POST['email']){
$email_to=“已删除”;
$email\u subject=“租户申请”;
函数失效($error){
echo“非常抱歉,您提交的表单存在错误。”;
echo“这些错误出现在下面。
”;
echo$错误。“
”;
echo“请返回并修复这些错误。
”;
模具();
}
$property=$_POST['property'];
$title=$_POST['title'];
$first\u name=$\u POST['first\u name'];
$last_name=$_POST['last_name'];
$dateofbirth=$_POST['dateofbirth'];
$国籍=$_职位['国籍'];
$email\u from=$\u POST['email'];
$telephone=$_POST['telephone'];
$natins=$_POST['natins'];
$smoker=$_POST['smoker'];
$破产=$_POST[“破产”];
$ccj=$_POST['ccj'];
$currentaddress=$_POST['currentaddress'];
$tenancy=$_POST['tenancy'];
$timeataddress=$\u POST['timeataddress'];
$employmentstatus=$_POST['employmentstatus'];
$company=$_POST['company'];
$positionhold=$_POST['positionhold'];
$salary=$_POST['salary'];
$timeatemployer=$_POST['timeatemployer'];
$selfemployedinfo=$_POST['selfemployedinfo'];
$selfemployedincome=$_POST['selfemployedincome'];
$OtherOccountSover18=$_POST['OtherOccountSover18'];
$OtherOccupentSunder18=$_POST['OtherOccupentSunder18'];
$pets=$_POST['pets'];
$error_message=“”;
$email_exp='/^[A-Za-z0-9.[U%-]+@[A-Za-z0-9.-]+\[A-Za-z]{2,4}$/';
如果(!preg_match($email_exp,$email_from)){
$error_message.=“您输入的电子邮件地址似乎无效。
”;
}
$string_exp=“/^[A-Za-z.-]+$/”;
如果(!preg_匹配($string_exp,$first_name)){
$error_message.='您输入的名字似乎无效。
;
}
如果(!preg_匹配($string_exp,$last_name)){
$error_message.=“您输入的姓氏似乎无效。
”;
}
如果(strlen($error_message)>0){
死亡($error_message);
}
$email\u message=“下面的表单详细信息。\n\n”;
函数clean_string($string){
$bad=数组(“内容类型”,“密件抄送:”、“收件人:”、“抄送:”、“href”);
返回str_replace($bad,“,$string);
}
$email\u message.=“应用的属性:”.clean\u字符串($Property)。“\n\n”;
$email\u message.=“申请人详细信息。\n\n”;
$email\u message.=“Title:”.clean\u字符串($Title)。“\n”;
$email\u message.=“名字:”.clean\u字符串($First\u name)。“\n”;
$email\u message.=“姓氏:”.clean\u字符串($Last\u name)。“\n”;
$email\u message.=“出生日期:”.clean\u字符串($dateofbirth)。“\n”;
$email\u message.=“email:”.clean\u字符串($email\u from)。“\n”;
$email\u message.=“电话:”.clean\u字符串($Telephone)。“\n”;
$email\u message.=“国家保险:”.clean\u字符串($natins)。“\n”;
$email\u message.=“吸烟者:”.clean\u字符串($Smoker)。“\n”;
$email\u message.=“破产:”.clean\u字符串($bantern)。“\n”;
$email\u message.=“CCJ:.clean\u字符串($CCJ)。“\n\n”;
$email\u message.=“当前地址详细信息。\n\n”;
$email\u message.=“当前地址:”.clean\u字符串($currentaddress)。“\n”;
$email\u message.=“租赁类型:”.clean\u字符串($tenancy)。“\n”;
$email\u message.=“当前地址的时间:”.clean\u字符串($timeataddress)。“\n\n”;
$email\u message.=“以前的地址详细信息。\n\n”;
$email\u message.=“以前的地址1:”.clean\u字符串($previousaddressone)。“\n”;
$email\u message.=“以前的地址2:”.clean\u字符串($previousaddresstwo)。“\n\n”;
$email\u message.=“就业。\n\n”;
$email\u message.=“雇用状态:”.clean\u字符串($employmentstatus)。“\n\n”;
$email\u message.=“雇用详细信息。\n\n”;
$email\u message.=“公司:”.clean\u字符串($Company)。“\n”;
$email\u message.=“位置保持:”.clean\u字符串($positionhold)。“\n”;
$email\u message.=“工资:”.clean\u字符串($Salary)。“\n”;
$email\u message.=“与雇主的时间:”.clean\u字符串($timeatemployer)。“\n\n”;
$email\u message.=“自营职业详细信息。\n\n”;
$email\u message.=“自营职业的详细信息:.clean\u字符串($selfemployedinfo)。“\n”;
$email\u message.=“过去3年的平均净收入:”.clean\u string($selfemployeedcome)。“\n\n”;
$email\u message.=“其他占用者。\n\n”;
$email\u message.=“18岁以上的其他住户:”.clean\u字符串($otheroccountsover18)。“\n”;
$email\u message.=“18岁以下的其他住户:”.clean\u字符串($otheroccountsunder18)。“\n”;
$email\u message.=“任何宠物的详细信息:”.clean\u字符串($pets)。“\n\n”;
$headers='From:'.$email\u From.\r\n。
'回复:'.$email\u from.\r\n'。
'X-Mailer:PHP/'.phpversion();
@邮件($email\u to、$email\u subject、$email\u message、$headers);
?>
请与社区分享您已经做过的尝试。我使用了一个代码片段,这本身就可以很好地工作,但是php编码与我的php处理程序的代码结构不同,这使得集成文件上载部分变得很棘手。我也是stackoverflow的新手,它不允许我在不检查字符的情况下将代码发布到回复中演员数。我可以改为编辑我的原始问题吗?你可以编辑你的问题并添加广告
''' <?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
/*
Tested working with PHP5.4 and above (including PHP 7 )
*/
require_once './vendor/autoload.php';
use FormGuide\Handlx\FormHandler;
$pp = new FormHandler();
$validator = $pp->getValidator();
$validator->fields(['Name','Email'])->areRequired()->maxLength(50);
$validator->field('Email')->isEmail();
$validator->field('Message')->maxLength(6000);
$pp->attachFiles(['image']);
$pp->sendEmailTo('REMOVED'); // ↠Your email here
echo $pp->process($_POST); '''