我想制作一个人们可以发送电子邮件给我的表格。我以前做过这个,但这次它不会发布...我不会收到错误消息或类似的东西。即使我的自定义错误消息也不会显示。
<?php
$err = "<br/>";
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if (!empty($name) && !empty($email) && !empty($message)) {
if (strstr($name, " ")) {
if(strlen($email) >=5 && strstr($email, "@") && strstr($email, ".")) {
} else {
$err = "<p style='color:#b30000'>Fill in a valid email!</p>";
}
} else {
$err = "<p style='color:#b30000'>Fill in a valid name!</p>";
}
} else {
$err = "<p style='color:#b30000'>Fill in all the fields!</p>";
}
} else {$name = ''; $email = ''; $message = '';}
echo $err . "
<form id='form' action='#form' method='post'>
<p>Full Name:</p>
<input class='input' type='text' name='name' placeholder=' Dirk Vondiek' value=". $name . ">
<p>E-Mail:</p>
<input class='input' type='text' name='email' placeholder=' example@domain.com' value=". $email . ">
<p>Your Message:</p>
<textarea class='textarea' name='message' placeholder=' Can you pls add me on steam?'>". $message ."</textarea>
<center><input class='submit' type='submit' name'submit' value='Send'></input></center>
</form>
"
?>
答案 0 :(得分:4)
<击>
action='#form'
,它对于操作语法无效,因此如果您以后决定使用两个单独的文件,请将其更改为action=""
或action="handler.php"
。
击>
编辑上面的内容:经过自我测试后确实有效,但主要罪魁祸首就是这里有一个拼写错误name'submit'
和你的条件陈述
if (isset($_POST['submit'])) {...}
永远不会因此而发生。
因此请将其修改为name='submit'
。
您还可以</input>
安全地摆脱它,它不是有效的结束标记。
你忘了关闭这个声明(但是在测试中这没有给我一个错误,我觉得这有点奇怪)。
</form>
"
?>
所以
</form>
";
?>
<击> 仅凭错误报告就会引发一些关于它的事情。 击>
诺塔:
但是,如果您在</form>"
行以下有更多代码,则会出现解析错误,例如:
(注意:我为此示例错误添加了echo "Testing";
但是会向您抛出与您可能使用的内容相关的解析错误:
解析错误:语法错误,意外'回声'(T_ECHO),期待','或';'
正如您在问题中提到的那样,它意味着发送邮件,但原始帖子中没有包含这些邮件。
如果您在该行下面和相同的<?php ...?>
标记内有更多代码,那么您需要关闭该声明,如我的回答中所述。
例如。
这会抛出一个解析错误:
</form>
"
mail();
?>
这不会抛出错误(有效),因此需要关闭(mail()
只是一个填写示例)。
</form>
";
mail();
?>
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
答案 1 :(得分:1)
请检查您的表单操作。你需要在这里提到一个URL,例如example.php。
如果您的PHP和HTML脚本在同一页面中,您可以将其保留为空白。
<form id='form' action='' method='post'>
希望这有帮助。
答案 2 :(得分:0)
你应该改变
<form id='form' action='#form' method='post'>
到
<form id='form' action='' method='post'>