我正在尝试完成一个项目来帮助他的网站上的朋友,我无法让联系表格工作。当我点击发送时:它似乎已经发送但是在电子邮件地址的收件箱中没有任何结果。 (我甚至无法让Stackoverflow工作......继续得到“你的帖子似乎包含没有正确格式化为代码的代码”)
贝娄是网站: pservices.comuf.com
Bellow是PHP代码:
<?php
// check if fields passed are empty
if(empty($_POST['name']) ||
empty($_POST['phone']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = $_POST['name'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
// create email body and send it
$to = 'cgramsinjapan@hotmail.com'; // PUT YOUR EMAIL ADDRESS HERE
$email_subject = "P Services Contact Form: $name"; // EDIT THE EMAIL SUBJECT LINE HERE
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nName: $name\n\nPhone: $phone\n\nEmail: $email_address\n\nMessage:\n$message";
$headers = "From: noreply@your-domain.com\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
答案 0 :(得分:5)
在访问您发布的网站的“联系”部分后,我可以看到,您的所有表单元素都不包含名称属性。
例如:
<input type="text" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
需要更改为
<input type="text" name="name" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
^^^^^^^^^^^
将相应的名称属性添加到其他表单输入。
您不能单独依赖id
属性。
也是这个
<form name="sentMessage" id="contactForm" novalidate>
缺少post方法和操作:
将其更改为
<form method="post" action="handler.php" name="sentMessage" id="contactForm" novalidate>
使用handler.php
作为PHP邮件处理程序文件名示例。
您还可以更改以下两行:
mail($to,$email_subject,$email_body,$headers);
return true;
为:
if(mail($to,$email_subject,$email_body,$headers)){
echo "Mail sent successfully.";
}
else{ echo "Error.";
}
如果它回应成功,则mail()
已成功发送。
如果它回显错误,那么这是一个服务器问题。检查邮件日志。