[英]Contact Us form not Functioning HTML5/PHP Help needed
美好的一天,
PHP中的新手。 我一直在一个网站上工作(免费模板),除了代码的“与我们联系”部分之外,所有功能都可以使用。 我没有收到任何错误,只是它没有将任何电子邮件发送到列出的电子邮件,也没有将回复发送回发件人。
这是代码的HTML端:
<form id="contact-form" action="php/mail.php">
<div class="control-group">
<div class="controls">
<input class="span6" type="text" id="name" name="name" placeholder="* Your name..."/>
<div class="error center" id="err-name">Please enter your name.</div>
</div></div>
<div class="control-group">
<div class="controls">
<input class="span6" type="email" name="email" id="email" placeholder="* Your email..."/>
<div class="error center" id="err-email">Please enter a valid email adress.</div></div></div>
<div class="control-group">
<div class="controls">
<textarea class="span6" name="comment" id="comment" placeholder="* Comments..."></textarea>
<div class="error center" id="err-comment">Please enter your comment.</div>
</div></div>
<div class="control-group">
<div class="controls">
<button id="send-mail" class="message-btn">Send message</button>
</div></div></form>
这是使用的mail.php代码:
include 'functions.php';
if (!empty($_POST)) {
$data['success'] = true;
$_POST = multiDimensionalArrayMap('cleanEvilTags', $_POST);
$_POST = multiDimensionalArrayMap('cleanData', $_POST);
//your email adress
$emailTo = "myemail@gmail.com"; //"myemail@gmail.com";
//from email adress
$emailFrom = "myemail@gmail.com"; //"myemail@gmail.com";
//email subject
$emailSubject = "Mail from MyEmail";
$name = $_POST["name"];
$email = $_POST["email"];
$comment = $_POST["comment"];
if ($name == "")
$data['success'] = false;
if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
$data['success'] = false;
if ($comment == "")
$data['success'] = false;
if ($data['success'] == true) {
$message = "NAME: $name<br>
EMAIL: $email<br>
COMMENT: $comment";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html; charset=utf-8" . "\r\n";
$headers .= "From: <$emailFrom>" . "\r\n";
mail($emailTo, $emailSubject, $message, $headers);
$data['success'] = true;
echo json_encode($data);
}
}
我真的被困在这一点上,这是我剩下的唯一问题,希望有人可以帮助指出我做错了什么。
问候,
拉斐尔
为了使form
发送POST
请求,您需要通过添加method
属性来指定它:
<form id="contact-form" action="php/mail.php" method="post">
您的php邮件脚本是否放置在cgi目录中? 这是我的邮件脚本:
<?php $name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
$subject = "Some subject";
$to = 'info@xxx.de';
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($to, $subject, $body, $headers);
// redirect afterwords, if needed
header('Location: ../contact/thx.html');?>
并将其放置在cgi目录中。
经过CodeGoodie的大量研究和帮助,我认为应该归咎于Hosting。 我曾问过如何检查服务器日志以检测错误,他们只是回答说我需要升级才能使用该功能(尽管它应该已经是该功能的一部分)。 感谢所有帮助人员。 我确实学到了很多:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.