我的用于邮寄表单的 php 脚本无法正常工作

2024-04-24

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

我对 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      = "[email protected] /cdn-cgi/l/email-protection";
    $subject = "Consulta de orçamento";
    $header  = "From: [email protected] /cdn-cgi/l/email-protection" . "\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.';
    }
}
?>

您可能遇到了您没有看到的 PHP 错误,请尝试将这些行添加到您的 php 顶部:

error_reporting(E_ALL);
ini_set('display_errors', true);

此代码将启用错误报告,这可能会让您看到一些东西..

另外,这一行:if($_POST['Duvidas'] = "Outras Dúvidas")

不是比较$_POST['Duvidas'] with "Outras Dúvidas"但正在赋值"Outras Dúvidas" to $_POST['Duvidas'],这始终是正确的..使用if($_POST['Duvidas'] == "Outras Dúvidas")相反(注意==)。这可能是导致您出现问题的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的用于邮寄表单的 php 脚本无法正常工作 的相关文章

随机推荐

  • 使用 load_model 加载经过训练的tensorflow.keras模型会返回JSON解码错误,而未经训练的模型加载正常

    我有一个训练有素的 Keras 模型 使用 tensorflow keras API 构建和训练 并使用tf keras save model 没有可选参数的方法 Tensorflow 是最新的 我的 Python 版本是 3 8 根据我的
  • 在 UI 线程上创建并启动任务

    当在工作线程上调用的方法需要在 UI 线程上运行代码并等待其完成后再执行其他操作时 可以这样做 public int RunOnUi Func
  • 每个环境使用不同的 URL 运行相同的 Testcafe 测试

    我正在研究 TestCafe 概念验证 我在一个测试环境中进行了一些测试 我需要一种方法来在最多 3 个具有不同 URL 的不同测试环境中运行相同的测试 对于这种情况有最佳实践吗 解决方案是在 testcafe 命令行上添加自定义选项 例如
  • Delphi 中的 DOMElement

    我如何在 DOMNodeList 对象中使用 getElementsByTagName 喜欢 procedure TForm1 selecionarClick Sender TObject var DOMDocument iXMLDOMDo
  • 如何子类化UIApplication?

    iPhone Reference Libary UIApplication 说我可以子类化 UIApplication 但如果我尝试这样做 我会得到一个异常 Terminating app due to uncaught exception
  • java.lang.IllegalArgumentException:错误的 FS:,预期:hdfs://localhost:9000

    我正在尝试实现reduce side join 并使用mapfile reader来查找分布式缓存 但在stderr中检查时它没有查找值 它显示以下错误 lookupfile文件已经存在于hdfs中 并且似乎已正确加载进入缓存 如标准输出中
  • 如何清理 Microsoft html 文档?

    我有一个相当大的 html 格式的文档 是从 Microsoft Word 生成的 它太混乱了 充满了臃肿的东西 比如未知的标签 未知的命名空间等和其他臃肿的东西 有什么方法可以将其转换为纯 html 语法吗 Try HTML 整洁 htt
  • activerecord - 如何获取连接表的所有列

    看完之后 this http guides rubyonrails org active record querying html using array hash of named associations 我还是不明白 在控制台中 pu
  • 为什么我的 pxd 文件的 Cython cimport 不起作用?

    我是 Cython 的新手 所以我可能会遗漏一些明显的东西 但我已经通读了文档并对此进行了一段时间的思考 我有一个 pyx我使用构建的文件setup py文件如下 from distutils core import setup from
  • hbase api - 通过行ID列表获取数据行信息

    是否可以通过hbase java API通过行id列表获取hbase数据记录 例如 我有一个已知的 hbase 行 ID 列表 mykey1 myhash1 mykey1 myhash2 mykey1 myhash3 mykey2 myha
  • 从 VS2015 打开 TFS 查询到 MS Excel 时出错(TF80068)

    当我们尝试使用 VS2015 中的 在 Microsoft Excel 中打开 功能在 Excel 中打开 TFS 查询结果时 我们收到错误 TF80068 Team Foundation 在与服务器通信时遇到错误 请检查您的连接并重试 E
  • ES6 带括号的箭头函数[重复]

    这个问题在这里已经有答案了 我在代码中遇到了一个小问题 这让我有点困惑 希望有人能解释为什么它会这样做 Code 1 sendText return this http get api map response Response gt re
  • 如何对使用 SimpleITK 读取的 DICOM 图像进行直方图均衡化

    我正在尝试对从 nii gz 文件读取的所有图像进行直方图均衡 我试过这段代码 import SimpleITK as sitk flair file content gdrive My Drive Colab Notebooks FLAI
  • 在ggplot2中的不同等高线图中保持相同的中断

    我正在使用 ggplot2 stat contour filled 函数创建数据不同子集的等高线图 然而 对于每种颜色 它都会产生不同的色标 这使得很难对它们进行比较 我尝试过使用 breaks 选项 但由于某种原因它不起作用 MWE 是
  • C 中的大于函数

    我知道这是一个古老的问题 您可能也遇到过这个问题 但我的解决方案中有一个错误 我不知道如何解决它 我需要编写一个比较两个整数的函数 我只允许使用操作 gt gt isGreater int x int y returns 1 if x gt
  • 将 HTML 选择元素转换为带有子菜单的树

    我想让一个选择元素有一个树形的子菜单 我希望它是这样的 source colinear com http www colinear com rmenu gif 有没有一个 jQuery 插件可以将 select 元素变成这种东西 这里有树插
  • 将 Elasticsearch 结果导出到 CSV 文件

    我正在尝试将使用以下查询找到的结果导出到桌面上的 CSV 中 这是我第一次使用 Elasticsearch 和 cURL 所以我对如何做到这一点感到困惑 from elasticsearch import Elasticsearch es
  • 在expect脚本中发送INSERT和F12

    我知道为了在期望脚本中发送返回 我会执行以下操作 send r What is the send command for the INSERT and F12 keys I ve looked online and cannot find
  • 使用Python将宏注入电子表格

    我有一个宏 我想使用一堆现有的电子表格 唯一的问题是电子表格太多了 手工做太费时间了 我已经编写了一个 Python 脚本来使用 pyWin32 访问所需的文件 但我似乎无法找到使用它来添加宏的方法 一个类似的问题here给出了这个答案 它
  • 我的用于邮寄表单的 php 脚本无法正常工作

    我正在尝试设置一个表单 将附件与电子邮件内容一起发送 但我不知道我在做什么 我对 PHP 完全陌生 刚刚学会了通过尝试和错误以及互联网上的教程来完成基本的邮件表单工作 但是 当涉及到附件时 现在我完全不知所措了 而且 尽管 PHP 脚本应该