Cal*_*ams 1 php forms twitter-bootstrap
我正在尝试完成一个项目来帮助他的网站上的朋友,我无法让联系表格工作.当我点击发送时:它似乎已经发送但是在电子邮件地址的收件箱中没有任何结果.(我甚至无法让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;
?>
Run Code Online (Sandbox Code Playgroud)
在访问您发布的网站的联系部分后,我可以看到,您的表单元素都不包含名称属性.
例如:
<input type="text" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
Run Code Online (Sandbox Code Playgroud)
需要改为
<input type="text" name="name" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
同时向其他表单输入添加适当的名称属性.
您不能id单独依赖该属性.
还有这个
<form name="sentMessage" id="contactForm" novalidate>
Run Code Online (Sandbox Code Playgroud)
缺少一个post方法和一个动作:
改为
<form method="post" action="handler.php" name="sentMessage" id="contactForm" novalidate>
Run Code Online (Sandbox Code Playgroud)
使用handler.php作为PHP邮件处理程序的文件名示例.
您还可以更改以下两行:
mail($to,$email_subject,$email_body,$headers);
return true;
Run Code Online (Sandbox Code Playgroud)
至:
if(mail($to,$email_subject,$email_body,$headers)){
echo "Mail sent successfully.";
}
else{ echo "Error.";
}
Run Code Online (Sandbox Code Playgroud)
如果它回应成功,那么mail()已经成功发送.
如果它回应错误,那么这是一个服务器问题.检查邮件日志.
| 归档时间: |
|
| 查看次数: |
1650 次 |
| 最近记录: |