繁体   English   中英

与我们联系表单不起作用HTML5 / PHP需要帮助

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM