我正在开发一个非常简单,非常简单的联系表单,当我在一个单独的页面上完成它时它工作得很好,但是当我将它添加到当前网站时它无法获得$ _POST我不会知道为什么。这是代码
$to ="enter email here";
$name = $_POST["name"];
$email = $_POST["email"];
$header = "From " . $name;
$message = $_POST["message"];
$content = "From: ". $name ."<br /> Email: " . $email ."<br /> Message: " . $message;
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "illegal email";
}
else
{
if (!empty($name) && !empty($message)){
mail($to, $header, $content);
echo"sent <br />";
echo $content;
}else
{
if(empty($email))
{
echo "your email is empty";
}
elseif(empty($name))
{
echo "please enter your name";
}
elseif(empty($message)){
echo "can't send empty messages";
}
}
}
HTML
<form method="post" action="mail.php">
<table>
<tr>
<td>
Name:
</td>
<td>
<input type="text" name="name" />
</td>
</tr>
<tr>
<td>
Email:
</td>
<td>
<input type="text" name="email"/>
</td>
</tr>
<tr>
<td>
Subject:
</td>
<td>
<input type="text" name="subject"/>
</td>
</tr>
<tr>
<td>
Message: <br /><br/><br/>
</td>
<td>
<textarea style="resize:vertical;" name="message"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit"/>
</td>
</tr>
</table>
</form>
提前感谢,如果重复,请抱歉
答案 0 :(得分:1)
通过在顶部添加类似的内容来检查PHP是否实际执行:
echo "Testing PHP...";
如果在提交表单后没有看到该输出,请检查您是否将表单发布到正确的文件中。例如,您可能需要使用:
<form method="post" action="/mail.php">
或
<form method="post" action="/php/mail.php">
...代码取决于您的网站结构。
答案 1 :(得分:0)
肯定不是$ _POST坏了,所以它必须是服务器相关的或代码中的错误。
您在导入表单的网站上是否有其他PHP?如果是这样,你需要确保它不会以任何方式影响它。
还有一件事需要检查,据报道,PHP更新意外地将上传限制大小从“8M”更改为“10MB”。扫描您的php.ini文件并确保它们在您的上传限制中不是任何不需要的“MB”而不是“M”。
如果您在此之后仍然没有找到原因,我可以给出的最后一个建议是尝试使用:
<?php var_dump($_POST); ?>
应该揭示真正存在的东西。