php联系表单代码错误?
我是php的初学者,我试图编写一个简单的联系表单。我的问题是:我的代码有什么问题?我似乎无法找到格式化或什么什么错误......这是我的代码:php联系表单代码错误?
contact.php:
...page content...
<div class="contact">
<form action="send_mail.php" method="post">
<fieldset>
<label for="name">Name:</label>
<input type="text" name="name" placeholder="Enter your name" />
<label for="email">Email:</label>
<input type="email" name="email" placeholder="Enter your email address" />
<label for="message">Message:</label>
<textarea name="message" placeholder="What's on your mind?"></textarea>
<br>
<input type="submit" name="submit" value="Send message" />
</fieldset>
</form>
</div>
...page content...
send_mail.php:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: My website';
$to = '[email protected]';
$subject = 'My contact form message';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
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>';
}
}
?>
我正在“出错了“的消息,这意味着邮件()返回false,但我不知道为什么。谢谢你的帮助!
这是在本地计算机上运行脚本的常见问题。大多数电脑都没有电子邮件服务器,并且被配置为从该服务器发送电子邮件。
要使PHP邮件功能正常工作,您的计算机必须设置一个电子邮件服务器。 您既可以通过电子邮件支持查看在线托管,也可以通过本地测试来安装测试邮件服务器。
最后有一点关于非mac OS的。过去我已经有一些运气了。
如果您在Windows上,这可能是更好的:http://www.toolheap.com/test-mail-server-tool/
谢谢,这可能是... – Smajl 2013-03-21 13:56:53
你的头需要包含适当的headers。
只使用From: My website
站在去垃圾邮件。
使用电子邮件=>From: $email\r\n
会更好。
试试这个,经过测试。
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From: $email\r\n";
$to = '[email protected]';
$subject = 'My contact form message';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if(empty($email)) {
die("Something went wrong, go back and try again!");
}
elseif (isset($_POST['email'])) {
mail($to,$email,$body,$headers);
echo "<p>Your message has been sent!</p>";
}
?>
1。为了使这个代码工作,你应该从任何域发送你的邮件。
for example: you should have a live website thru that domain email id only send mail to
others
2。使用PHP-MAILER编码发送邮件。只需从网上下载并进行更改并使用
您在'else {'底部附近有'反斜杠' – 2013-03-21 13:50:26
我更正了反斜杠,但错误仍然存在...但感谢通知 – Smajl 2013-03-21 13:52:09
电子邮件是否正在交付?标准的SMTP服务器是localhost。如果您还没有更改SMTP服务器,那么在同一台计算机上是否有电子邮件服务器? – Joshua 2013-03-21 13:53:06