php mail() 函数导致 404 文件未找到页面

2023-12-10

我有一个带有 html 表单的简单 php 页面。它的设置是让您填写表格并自动向我的电子邮件发送电子邮件。我没有收到任何电子邮件,并且页面重定向到“找不到文件(404 错误)”,而不是发生这种情况。

这是 PHP

<?php

if (isset($_POST['submit'])){

    //Name
    $Name = $_POST['Name'];
    $Name = mysqli_real_escape_string($Name);

    //Email
    $Email = $_POST['Email'];
    $Email = mysqli_real_escape_string($Email);

    //Subject
    $Subject = $_POST['Subject'];
    $Subject = mysqli_real_escape_string($Subject);

    //Message
    $Message = $_POST['Message'];
    $Message = mysqli_real_escape_string($Message);

    $email_subject = $Subject . ' from: ' . $Email;
    $email_from = $Email;
    $email_body = $Message;

    $webEmail = "[email protected]";
    $headers = "From: $email_from \r\n";
    $headers .= "Reply-To: $Email \r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion();
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";



    mail($webEmail,$email_subject,$email_body,$headers);
}
?>

这是 html 表单

<form action="action_page.php" name="myform">
            <input onfocus="this.value='';" type="text" name="Name" value="Name" id="name">
            <input onfocus="this.value='';" type="text" name="Email" value="Email" id="email">
            <input onfocus="this.value='';" type="text" name="Subject" value="Subject" id="subject">
            <textarea onfocus="this.value='';" cols="50" rows="4" placeholder="Message" name="Message" id="message"></textarea>
            <input type="submit" value="submit" id="submit">

        </form>

有任何想法吗?


这里有一些问题。

让我们从顶部开始并使用您的条件语句(并一路向下).

if (isset($_POST['submit'])){...}

您的提交按钮<input type="submit" value="submit" id="submit">没有它的名称属性。

  • 您可能仅依赖“id”,这是行不通的,它需要“name”属性。

修改它,使其显示为:

<input type="submit" name="submit" value="submit" id="submit">
  • 由于它没有命名,因此该条件语句内的任何内容都不会执行。

那么你正在使用mysqli_real_escape_string()理论上需要将连接传递给该函数。

I.e.:

$Name = mysqli_real_escape_string($connection,$Name);

并对其余部分做同样的事情;假设您正在与数据库交互。

但是,尚不清楚您是否确实在与数据库进行交互,因此如果您没有与其进行交互,请删除所有这些mysqli_real_escape_string来自您的 POST 数组。

I.e.:

$Name = $_POST['Name'];

并对其他人做同样的事情。

您还缺少 POST 作为表单中的方法:

<form action="action_page.php" name="myform">

省略时默认为 GET。因此,将其更改为:

<form action="action_page.php" name="myform" method="post">

要检查邮件是否已发送,请更改

mail($webEmail,$email_subject,$email_body,$headers);

to

if(mail($webEmail,$email_subject,$email_body,$headers)){
echo "Sent";
}

如果您看到“已发送”,则邮件已完成其工作。如果没有收到邮件,请检查您的垃圾邮件。或者,您的服务器可能被列入黑名单。

确保您确实有权使用mail().

您还应该确保所有输入都已使用条件填充empty().

I.e.:

if(!empty($_POST['Name'])){
// $Name = mysqli_real_escape_string($Name);
   $Name = $_POST['Name'];
   }

Add 错误报告到文件的顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

边注:错误报告只能在暂存阶段完成,而不能在生产阶段完成。


脚注:

我不知道这些是用来做什么的onfocus="this.value='';"因此,如果某个地方发生了一些 JS/Ajax,您需要检查它们。

  • 如果它们不用于任何用途,您可以将其删除。

您还应该尝试删除value="Name"以及其他人,以防万一。

边注:

如果仍然收到 404 错误,请尝试将 PHP 放在顶部,将 HTML 表单放在下面,并在同一个文件中使用.php扩展,并执行以下操作:

<form action="" name="myform" method="post">

using action=""作为在同一页面上发生的操作。


附加脚注:

我注意到您在另一个答案中发表的评论:

“我添加了标题('位置:lizbethmcgee.com/pages/Contact.php';);”

首先,确保您没有在 header 之前输出。

另外,您还应该包括完整的http://打电话和exit;:

header("Location: http://www.lizbethmcgee.com/pages/Contact.php");
exit;

以避免进一步执行下面可能存在的代码(如果包含任何代码)。


正如 AdamT 在评论中所说:

使用 php 发送邮件mail命令,不能保证邮件将到达您发送到的收件箱。如前所述,那里有很多垃圾邮件发送者,不幸的是,垃圾邮件过滤程度很高。如果您确实希望有更好的机会收到邮件,您应该联系 GoDaddy 并询问他们如何为您的帐户设置 SMTP 电子邮件。

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

php mail() 函数导致 404 文件未找到页面 的相关文章

  • Php 转换 GMT 格式的时间

    我有这个字符串2012 06 27 16 17 06我想将其转换为 GMT 格式 我怎样才能做到这一点 多谢 Use gmdate http php net manual en function gmdate php 使用以下命令将当前日期
  • 我的设置未保存在 WordPress 主题选项页面中

    我正在尝试创建一个基于 WordPress 设置 API 的主题选项页面 当我在浏览器中检查 options php 页面时 例如http mysite com wordpress wp admin options php http mys
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • Doctrine 装置如何覆盖 purger 类?

    From doctrine fixture bundle the console doctrine fixtures load n命令定义如下 https github com doctrine DoctrineFixturesBundle
  • 使用控制器通过 codeigniter 处理返回的自定义 css 和 javascript 文件

    我正在开发一个 php codeigniter 项目 我正在考虑创建一个专门用于处理返回自定义 css 和 javascript 文件的控制器 在之前的项目中 我在视图文件的标头中包含了外部 CSS 和 JS 文件 但它们本质上必须是静态的
  • 通过 PHP 连接到 socket.io(nodejs)

    我需要通过 php 连接到 websocket 发送数据并立即断开连接 无需等待套接字的响应 我用了大象io http elephant io 但更新库后不起作用 请告诉我如何通过 PHP 连接到 websocket 我也遇到了这个问题 学
  • 如何解决 注意:未定义索引:第 21 行 C:\xampp\htdocs\invmgt\manufactured_goods\change.php 中的 id [重复]

    这个问题在这里已经有答案了 我的 PHP 代码有一个问题 显示 注意 未定义的索引 我确信它非常简单 因为我是初学者 所以我不太清楚到底出了什么问题 所以请帮助我 这是代码
  • 从 PHP 生成渐变颜色

    我想知道如何构建一个给出颜色代码和 显示该颜色的渐变 例如 function generate color int colorindex Generate 10 pale colors of this color 请帮我 迈克尔引用的代码相
  • PHP括号少IF条件不接受多个语句

    我从来都不喜欢控制结构中的括号 直到今天我才意识到它如何只接受括号内的一条语句而不是 if 条件 如果我有多个语句 它会抛出语法错误 这是 PHP 的工作方式还是我的 IDE 有问题 显然错误很明显 但我只是想确保这是正常的 如果您有任何其
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • PHPMailer 验证失败

    当我尝试在工作中使用 Windows Server 2012 上的 PHPMailer 来使用 SMTP 发送报告电子邮件时 出现身份验证失败错误 我在域上使用服务器管理员帐户 我非常确定密码是正确的 检查下面的代码 require PHP
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • Doctrine2:入门教程“没有要处理的元数据类”

    我已经将本教程的第一部分运行了三遍 到目前为止 在这里或其他地方进行的大量搜索都无法帮助我使其发挥作用 我收到 没有要处理的元数据类 当我尝试时 php vendor bin doctrine orm schema tool update
  • PHP:是否可以从文件内容(字符串)创建 SplFileObject 对象?

    例如 contents file get contents image png 是否可以从 contents 创建 SplFileObject 对象 Thanks php 有一些特殊的流包装器 http www php net manual

随机推荐

  • 将文件输出存储到变量中

    我想将文本文件的输出存储到一个变量中 这样我就可以将整个文件作为参数传递 我使用的是Windows 2003 Server 文本文件有多行 例如 10 20 210 100 fish 10 20 210 101 rock 我正在使用 Set
  • Android:如何检查是否启用了特定的 AccessibilityService

    我编写了一个 Android 应用程序 需要使用AccessibilityService 我知道如何检查手机上是否启用或禁用了辅助功能 但我无法找到一种方法来确定我的应用程序是否已在辅助功能菜单中专门启用 我想提示用户如果Accessibi
  • Scanf 将输入的字符串解析为字符数组

    我想在两个单独的数组中解析用户输入 使用 scanf g 编译没有错误 但出现内存访问错误 核心转储 德语 Speicherzugriffsfehler Speicherabzug geschrieben char top 10 char
  • Firebase 按字符搜索

    我在我的 firebase 应用程序中使用 FirebaseRecyclerAdapter 直到现在我仍然不知道如何在 Firebase 中按字符搜索 我已经使用了查询 并且得到了很好的结果 但它不可用 这是我想要的数据库搜索 这是我使用它
  • Excel 中的排列

    我有一个有 6 个空格的字符串 例如000000 每个空格可以容纳三位数字之一 0 1 或 2 我知道使用 Excel 中的 Permut 函数总共可以获得 120 种排列 即 PERMUT 6 3 120 但我会实际上喜欢在单元格中进行每
  • C# 相对路径不从工作目录开始

    我有一个 C 程序 它将从相对路径读取文件 report report1 rdlc 但是有时由于未知原因它从完全不同的位置找到了该文件C Windows system32 report report1 rdlc但该文件实际上位于C Prog
  • 客户端的 ASP.NET MVC 多对多模型

    我有 3 个多对多表 Users lt UserRoles gt Roles 我这样设置我的模型 public class User public int UserId get set public IEnumerable
  • 设置 JetBrains YouTrack 以连接到 SVN

    我意识到 TeamCity 一定是 YouTrack 和 SVN 之间的桥梁 但我不需要 Teamcity 的任何功能 我只想通过提交评论发出 Youtrack 命令像这儿 http confluence jetbrains net dis
  • TypeScript 中的“keyof typeof”是什么意思?

    向我解释一下什么keyof typeof在 TypeScript 中的意思是 Example enum ColorsEnum white ffffff black 000000 type Colors keyof typeof Colors
  • bash while循环删除文本文件的最后一行[重复]

    这个问题在这里已经有答案了 当我 cat 这个文件时 我得到 6 行 它是一个 diff 文件 bash 3 00 cat tmp voo 18633a18634 gt sashabSTP 18634a18636 gt sashatSTP
  • 该项目存在于数组中,但它说数组长度为 0?

    我可以将一个项目添加到数组中 并且我可以访问该项目 但是length报告0 Why var arr arr 4294967300 My item console log arr 4294967300 arr length Outputs M
  • 有没有办法使用CSS使用文本作为背景?

    我想使用动态文本作为标签中某些元素的背景 因此 我可以使用图像 动态文本 如何仅使用 CSS 或 JavaScript 来做到这一点 SVG 文本背景图像 body background image url data image svg x
  • 在匹配的正则表达式的一部分上分割字符串(python)

    假设我有一个字符串 ad gt ad gt ad gt gt ad 我想就此分开 gt 不是 gt gt 字符 刚刚拿起正则表达式 想知道是否有一种方法 特殊字符 可以分割匹配表达式的特定部分 而不是分割整个匹配表达式 例如正则表达式可以是
  • 升级到 G++ 4.8 - exception_ptr.h 不支持异常传播

    我正在尝试使用 g 4 8 重新编译一个巨大的遗留应用程序 以便调试glibc detected memory corruption问题 使用 AddressSanitizer 之前我们使用的是 g 4 4 7 但是 编译失败并显示 opt
  • 如何构建 IEnumerable.Contains() 表达式?

    我目前第一次使用 ASP 动态数据 并尝试构建一个过滤器 我们的用户需要根据项目是否是所选父项的子项 我们的项目可以有多个父项 来定位列表中的项目 所讨论的项目是 Segment 每个 Segment 都有一个名为 RouteIds 的属性
  • MySQL 相当于 MS SQL 交叉应用

    如果您习惯了 MS SQL 交叉应用 那么您可能想知道如何在 MySQL 中完成同样的事情 我发现反问句并认为直接的问题可能会帮助任何搜索如何将此功能从 MS SQL 迁移到 MySQL 的人 在此示例中 交叉应用允许您修改字段并在同一查询
  • 正则表达式批量搜索替换

    我想在 Windows 批处理中使用正则表达式模式对一组文件进行搜索 替换 它会是这样的 if the regex matches a line matches then replace it with a new line 我还需要在正则
  • 如何将 SVG 中的路径数据变形为另一个路径数据?

    我试图弄清楚为什么它不会将此路径数据变形为另一个路径数据 我需要使其看起来像真正的动画 这是我的 SMIL 代码
  • 导入 csv 时,Pandas 无法识别一列浮点数

    我正在尝试将国际货币基金组织的统计数据读入 pandas 数据框 import pandas as pd df pd read table http www imf org external pubs ft weo 2013 02 weod
  • php mail() 函数导致 404 文件未找到页面

    我有一个带有 html 表单的简单 php 页面 它的设置是让您填写表格并自动向我的电子邮件发送电子邮件 我没有收到任何电子邮件 并且页面重定向到 找不到文件 404 错误 而不是发生这种情况 这是 PHP