这里有一些问题。
让我们从顶部开始并使用您的条件语句(并一路向下).
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 电子邮件。