我正在尝试设置一个将附件和电子邮件内容一起发送的表单,但我不知道我在做什么。
我是PHP的新手,刚刚学会了基本的邮件表单工作,基本上是试验和错误,以及互联网上的教程。但是,当谈到附件时。现在我完全不知所措。并且,虽然PHP脚本应该运行,并且文件已上传,但所有操作都会突然停止。我也没有得到脚本完成运行时应该显示的消息,也没有收到包含测试消息及其附件的电子邮件。
任何人都可以帮助我,或者至少让我通过,这样我才能理解我的错误是什么?我的HTML和PHP如下:
HTML(表格和标题)
<h3 style="padding-left:290px">Consulta de orçamento</h3>
<form id="form" method="post" action="formulario_orcamento.php" style="padding-left:100px" enctype="multipart/form-data">
<fieldset>
<label><input name="Nome" type="text" value="Nome" id="Nome" onBlur="if(this.value=='') this.value='Nome'" onFocus="if(this.value =='Nome' ) this.value=''"></label>
<label><input name="E-mail" type="text" value="E-mail" id="E-mail" onBlur="if(this.value=='') this.value='E-mail'" onFocus="if(this.value =='E-mail' ) this.value=''">
</label>
<label><input name="Telefone" type="text" value="Telefone" id="Telefone" onBlur="if(this.value=='') this.value='Telefone'" onFocus="if(this.value =='Telefone' ) this.value=''"></label>
<label>
<select name="Duvidas" id="Duvidas" style="height:20px; width: 623px">
<option value="Elaboração de questionários">Elaboração de questionários</option>
<option value="Amostragem">Amostragem</option>
<option value="Análise exploratória">Análise exploratória</option>
<option value="Pesquisas online">Pesquisas online</option>
<option value="Tabulação">Tabulação</option>
<option value="Análises específicas">Análises específicas</option>
<option value="Outras Dúvidas">Outras Dúvidas</option>
</select>
</label>
<label><input name="Outras" type="text" value="Outras Dúvidas - Especificar" id="Outras Duvidas" onBlur="if(this.value=='') this.value='Outras Dúvidas - Especificar'" onFocus="if(this.value =='Outras Dúvidas - Especificar' ) this.value=''"></label>
<label><input name="Arquivos" type="file" style="height:25px"></label>
<label><textarea name="Mensagem" id="Mensagem" onBlur="if(this.value==''){this.value='Mensagem'}" onFocus="if(this.value=='Mensagem'){this.value=''}">Mensagem</textarea></label>
<input type="submit" name="Enviar" id="Enviar" value="Enviar" class="button" style="background:#64d0ff; font-size:14px; color:#fff; display:inline-block; padding:6px 20px 5px 20px; box-shadow:0 1px 1px #fff; width:70px; height:35px" onmouseover="this.style.backgroundColor='#1f497d', this.style.color='#fecf06'" onmouseout="this.style.backgroundColor='#64d0ff', this.style.color='#ffffff'">
</fieldset>
</form>
PHP
<?php
$name = $_POST['Nome'];
$email = $_POST['E-mail'];
$telephone = $_POST['Telefone'];
$message = $_POST['Mensagem'];
if ($_POST['Duvidas'] = "Outras Dúvidas") {
$question == $_POST['Outras'];
} else {
$question == $_POST['Duvidas'];
}
$mime_boundary = "==Multipart_Boundary_x" . md5(mt_rand()) . "x";
$tmp_name = $_FILES['filename']['tmp_name'];
$ftype = $_FILES['filename']['type'];
$fname = $_FILES['filename']['name'];
$fsize = $_FILES['filename']['size'];
if (file_exists($tmp_name)) {
if (is_uploaded_file($tmp_name)) {
$file = fopen($tmp_name, 'rb');
$data = fread($file, filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$to = "quick.analytics@2frame.com.br";
$subject = "Consulta de orçamento";
$header = "From: danielle.steffen@2frame.com.br" . "\r\n";
$header .= "Content-type: multipart/mixed;\r\n";
$header .= " boundary=\"{$mime_boundary}\"";
$header .= "MIME-Version: 1.0\r\n";
$msg = "This is a multi-part message in MIME format.\n\n";
"--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
"Mensagem enviada em " . date("d/m/Y") . ", os dados seguem abaixo:\n\n" . "Nome: $name\n\n" . "E-mail: $email \n\n" . "Telefone: $telephone \n\n" . "Dúvida: $question \n\n";
$message .= "--{$mime_boundary}\n";
"Content-Type: {$ftype};\n" . " name=\"{$fname}\"\n";
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n";
$data . "\n\n" . "--{$mime_boundary}--\n";
if (isset($_POST['Enviar'])) {
$res = mail($to, $subject, $msg, $header);
}
if ($res) {
echo 'Mensagem enviada para ' . $to . '';
} else {
echo 'Por favor corrija seus erros.';
}
}
?>
答案 0 :(得分:0)
你可能有PHP错误,你没有看到,尝试将这些行添加到你的PHP顶部:
error_reporting(E_ALL);
ini_set('display_errors', true);
此代码将启用错误报告,这可能会让您看到某些内容..
另外,这一行:
if($_POST['Duvidas'] = "Outras Dúvidas")
并未将$_POST['Duvidas']
与"Outras Dúvidas"
进行比较,而是将值"Outras Dúvidas"
分配给$_POST['Duvidas']
,这始终为真..请改用if($_POST['Duvidas'] == "Outras Dúvidas")
(注意==)。这可能是您遇到问题的原因。