我用于发送表单的php脚本不起作用

我用于发送表单的php脚本不起作用,php,html,attachment,mime,mail-form,Php,Html,Attachment,Mime,Mail Form,我正在尝试设置一个表单,该表单将随电子邮件内容一起发送附件,但我不知道我在做什么 我对PHP完全陌生,刚刚学会了基本的邮件表单工作,基本上是通过尝试和错误,以及互联网上的教程。但是,当涉及到附件时。现在我完全不知所措。而且,尽管PHP脚本可能会运行,文件也会上传,但所有操作都会突然停止。我既没有收到脚本运行结束时应该显示的消息,也没有收到包含测试消息及其附件的电子邮件 有人能帮我吗,或者至少带我走一遍,让我明白我的错误是什么?我的HTML和PHP如下所示: HTML(表格和标题) 奥拉门托领事馆

我正在尝试设置一个表单,该表单将随电子邮件内容一起发送附件,但我不知道我在做什么

我对PHP完全陌生,刚刚学会了基本的邮件表单工作,基本上是通过尝试和错误,以及互联网上的教程。但是,当涉及到附件时。现在我完全不知所措。而且,尽管PHP脚本可能会运行,文件也会上传,但所有操作都会突然停止。我既没有收到脚本运行结束时应该显示的消息,也没有收到包含测试消息及其附件的电子邮件

有人能帮我吗,或者至少带我走一遍,让我明白我的错误是什么?我的HTML和PHP如下所示:

HTML(表格和标题)

奥拉门托领事馆 埃拉博拉萨昂问题区 阿莫斯特拉吉 安纳利斯探险家酒店 佩斯奎萨斯在线 塔布卢昂 特别是 奥特拉斯杜维达斯酒店 男装 PHP


您可能有未看到的PHP错误,请尝试在PHP顶部添加以下行:

error_reporting(E_ALL);
ini_set('display_errors', true);
此代码将启用错误报告,这可能会使您看到一些东西

此外,这一行:
if($\u POST['Duvidas']=“Outras Dúvidas”)


不是将
$\u POST['Duvidas']
“Outras Dúvidas”
进行比较,而是将值
“Outras Dúvidas”
分配给
$\u POST['Duvidas']
,这始终是正确的。。使用
if($\u POST['Duvidas']==“Outras Dúvidas”)
(注意==)。这可能是您出现问题的原因。

避免头痛。请将代码缩进以便我们更容易阅读。同时,也感谢Matthew的缩进。当我复制到这里时,我没有意识到我已经丢失了所有的缩进。谢谢你的提示,达米恩,我已经修复了你建议的内容,并且我已经修复了你建议的脚本添加中报告的一个错误。现在唯一的问题是脚本报告了错误,我不知道它们是什么意思。我得到的信息是,第21-24行中有未定义的索引。这意味着您正在使用
$arrayVariable['INDEX']
,并且$arrayVariable中不存在索引。例如,当您使用$\u POST['formname']并且表单不包含带有
name=“formname”
的字段时,就会发生这种情况。您的问题很可能是您正在使用$\u文件['filename'],但没有上载任何文件$_文件为空,因此索引“filename”不存在。您可以通过在处理附件的代码周围添加
if(!empty($\u FILES)){..}
来解决此问题。再次感谢您,Damien,这实际上非常有用,我发现问题在于该文件没有上载到$\u文件。我会找到一个方法来实现这一点。谢谢你的帮助,达米恩!
<?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.';
    }
}
?>
error_reporting(E_ALL);
ini_set('display_errors', true);