【发布时间】:2014-05-26 20:50:26
【问题描述】:
我刚刚关注了this tutorial,了解如何使用 PHP 创建联系表单。现在一切正常,但是当我提交表单时,它会在新的空白页面上返回一条消息。我希望这发生在联系表单下方的当前页面上。
这是我第一次用 PHP 做任何事情,所以我不知道该怎么做。在教程中简要提到了您可以将脚本放在任何您希望显示消息的位置,但它似乎对我不起作用。
这是我的 HTML 代码:
<form method="post" action="contact.php">
<label>Name</label>
<input name="name" placeholder="John Doe">
<label>Email</label>
<input name="email" type="email" placeholder="john@doe.com">
<label>Message</label>
<textarea name="message" placeholder="Hello..."></textarea>
<label id="antispam">What is 2+2? (Anti-spam)</label>
<input id="antispambox" name="human" placeholder="4">
<input id="submit" name="submit" type="submit" value="Submit">
</form>
这是我的 PHP 代码:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: TangledDemo';
$to = 'contact@tangledindesign.com';
$subject = 'Hello';
$human = $_POST['human'];
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
} else {
echo '<p>You need to fill in all fields!!</p>';
}
}
?>
我已经找到了一些答案,但对我来说没有任何意义。我还尝试检查教程网站上的示例,但是我当然无法访问 PHP。
谁能给我解释一下?
【问题讨论】:
-
可能上面的这段代码是一些其他的.php文件而不是包含实际表单的文件?如果是这种情况,您需要将两者结合起来,以便在您发送电子邮件后重新显示表单,或者使用此代码重定向回原始页面。
-
好吧,我有 1 个单独的 php 文件,其中包含我的代码和一个 HTML 文件。教程文件在开头提到我应该创建一个 PHP 文件并将所有内容都放在那里。但这根本不起作用,所以我尝试了这种方式,并且确实有效。
-
顺便说一下,我在我的大学服务器上进行了测试,所以我真的无法控制它们的设置。
-
您可以使用 wamp 或 xampp 在本地机器上运行 php 脚本。实际上就像你自己的网络服务器:)
标签: php html forms input contact