Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何以web表单上传文件并通过电子邮件发送?_Php_Mysql_Html - Fatal编程技术网

Php 如何以web表单上传文件并通过电子邮件发送?

Php 如何以web表单上传文件并通过电子邮件发送?,php,mysql,html,Php,Mysql,Html,我正在尝试创建一个RMA表单,除了上传+电子邮件附件,我的一切都正常工作 我想做的是让客户上传他们文档的扫描副本(jpeg、gif、png、pdf、word等格式),但我似乎无法启动。我有各种各样的文件上传方法,但我似乎不知道从哪里开始 这是到目前为止我的php代码 $name=$_POST['first'] ." ".$_POST['last']; $email=$_POST['email']; $address=$_POST['street'] ." ". $_POST['city'] ."

我正在尝试创建一个RMA表单,除了上传+电子邮件附件,我的一切都正常工作

我想做的是让客户上传他们文档的扫描副本(jpeg、gif、png、pdf、word等格式),但我似乎无法启动。我有各种各样的文件上传方法,但我似乎不知道从哪里开始

这是到目前为止我的php代码

$name=$_POST['first'] ." ".$_POST['last'];
$email=$_POST['email'];
$address=$_POST['street'] ." ". $_POST['city'] ."".$_POST['province'] ." ".$_POST['postal'];
$pod=$_POST['pod'];
$sku=$_POST['sku'];
$description=$_POST['description'];
$problem=$_POST['problem'];
$case_id=$_POST['case_id'];
$status=$_POST['status'];
$phone=$_POST['parea'] ."".$_POST['pfirst'] ."".$_POST['plast'];
$tracking=$_POST['tracking'];
$date=$_POST['date'];

$link = mysql_connect('m', 'sk', 's1'); 

if (!$link) 
{

die('Could not connect: ' . mysql_error()); 
}

mysql_select_db(s);
$status = "Pending";
$tracking = "";
$date = date('c');
$case_id = mt_rand(1252,10000);

while( $fetch = mysql_fetch_array( mysql_query("SELECT `case_id` FROM `webform` WHERE `case_id` = $case_id") ) )
{
$case_id = mt_rand(1252,10000);
}
//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Invalid email address entered";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ($name,$phone,$email,$address,$pod,$sku,$description,$problem);
$required = array($name,$phone,$email,$address,$pod,$sku,$description,$problem);

$your_email = "fahad@home.com";
$email_subject = "RMA: ".$case_id;
$email_content = "new message:\n";

foreach($values as $key => $value){
  if(in_array($value,$required)){
    if ($key != $phone && $key != $address) 
    $email_content .= $value.' '.$_POST[$value]."\n";
  }
}

if(@mail($your_email,$email_subject,$email_content,$case_id)) {
    echo 'Request Submitted!<br />';
    echo 'RMA:'. $case_id; 
} else {
    echo 'ERROR!';

}

}

$queries = array ($values, $case_id);
$piece = implode(",",$queries);
mysql_query("INSERT INTO `webform` (`case_id`, `name`, `phone`, `email`, `address`, `pod`, `sku`, `description`, `problem`, `status`, `tracking`, `date_recieved`) VALUES ('$case_id', '$name', '$phone', '$email', '$address', '$pod', '$sku','$description', '$problem', '$status', '$tracking', '$date')")

or die(mysql_error());
mysql_close($link);


?>
$name=$\u POST['first']。”.$\u POST['last'];
$email=$_POST['email'];
$address=$\邮政['street'].“”$_邮政['city']。$邮政['province']。$邮政['postal'];
$pod=$_POST['pod'];
$sku=$_POST['sku'];
$description=$_POST['description'];
$problem=$_POST['problem'];
$case\u id=$\u POST['case\u id'];
$status=$_POST['status'];
$phone=$\u POST['parea']。$\u POST['pfirst']。$\u POST['plast'];
$tracking=$_POST['tracking'];
$date=$_POST['date'];
$link=mysql_connect('m','sk','s1');
如果(!$link)
{
die('无法连接:'.mysql_error());
}
mysql\u选择\u数据库;
$status=“待定”;
$tracking=“”;
$date=日期('c');
$case_id=mt_rand(125210000);
而($fetch=mysql\u fetch\u数组(mysql\u查询(“从`webform`中选择`case\u id``WHERE`case\u id`=$case\u id”))
{
$case_id=mt_rand(125210000);
}
//$error[]=preg\u match('/\b[A-Z0-9.\u%-]+@[A-Z0-9.-]+\[A-Z]{2,4}\b/i',$\u POST['email'])?''无效的电子邮件地址';
如果(!eregi(“^[a-z0-9]+([\\.-][a-z0-9]+)*”。”([a-z0-9]+([\.-][a-z0-9]+)*)+“\\.[a-z]{2,}.”,$email)){
$error.=“输入的电子邮件地址无效”;
$errors=1;
}
如果($errors==1)echo$error;
否则{
$values=数组($name、$phone、$email、$address、$pod、$sku、$description、$problem);
$required=数组($name、$phone、$email、$address、$pod、$sku、$description、$problem);
$your_email=”fahad@home.com";
$email\u subject=“RMA:”.$case\u id;
$email\u content=“新邮件:\n”;
foreach($key=>$value的值){
if(在_数组中($value$required)){
如果($key!=$phone&&$key!=$address)
$email\u content.=$value.'.$\u POST[$value]。“\n”;
}
}
if(@mail($your_email、$email_subject、$email_content、$case_id)){
回显“请求已提交!
”; 回显“RMA:”.$case_id; }否则{ 回声“错误!”; } } $queries=数组($values,$case\u id); $piece=内爆(“,”,$queries); mysql_查询(“插入到'webform'('case_id','name','phone','email','address','pod','sku','description','problem','status','tracking','date_received`)值('$case_id','name','phone','email','address','pod','sku','sku','description','problem','status','status','tracking','date等等)。” 或者死(mysql_error()); mysql_close($link); ?>
所以基本上,我不确定文件上传部分放在哪里,甚至不知道如何使用它。我有一个工作的html设计,它带来了文件浏览器和一切,我只是不知道如何链接到php端的过程,然后上传后附加到电子邮件


提前感谢大家的帮助

我只使用这个,它对我很有用

我不会的

我的公司每月发送数百万封电子邮件,电子邮件附件是我们面临的最大问题。底线是,你附加了一些东西,你被屏蔽或标记为垃圾邮件的几率会大大增加


改为发送链接。在链接中使用唯一的散列标识符,用户可以单击该标识符启动下载。它有助于减少电子邮件、更方便地发送垃圾邮件、更容易为您编码,并使客户更快乐。

RTFM?好的,听起来不错,但是我该怎么做呢?我知道如何将文件上传到服务器上,但不幸的是,就散列标识符而言,我没有任何线索。可能有一些唯一的标识符可以使用。数据库中是否有RMA id?如果是这样,您可以对该数字进行base64编码并将其保存为您的文件名。或者,将随机生成的文件名保存到RMA数据库记录中,并以这种方式构建链接。不管怎样,您只需要拥有某种独特的、非顺序的id,它可以点击提供文件的页面,或者直接指向文件,告诉浏览器要下载什么。我个人会通过一个download.php页面发送我的用户,然后根据$\u请求变量提供文件。我会试一试。我想我会按照你的建议,强制文件名与RMA编号匹配,因为它总是唯一的,然后在给收件人的电子邮件中,我会让它回显url+$RMAN编号。非常感谢你的帮助