Bootstrap PHP表单不会发送任何东西

时间:2014-11-07 03:53:29

标签: 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;            
?>

1 个答案:

答案 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()已成功发送。

如果它回显错误,那么这是一个服务器问题。检查邮件日志。