梅勒不会正常工作

时间:2014-11-25 12:26:48

标签: php html email post mailer

我尝试使用此邮件程序,并根据用户输入的字段将其重定向到成功/失败页面。它可以工作并发送邮件,并在输入所有字段时重定向到成功页面,但是当没有输入任何内容时,它只会转到空白页但仍然发送邮件?

我怎样才能按预期进行此项工作?理想情况下,我希望它只是指向同一页面并在页面中显示成功或错误消息,但我不知道该怎么做。

我的邮件代码如下:

<?php
$name = $_POST['name'];
$company = $_POST['company'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$website = $_POST['website'];
$features = $_POST['features'];
$budget = $_POST['budget'];
$timeline = $_POST['timeline'];
$content = $_POST['content'];
$additional = $_POST['additional'];

$to = "hello@phnx-creative.co";
$subject = "Project Req: $company";
$body = "Name: $name \n\n Company Name: $company \n\n Email: $email \n\n Phone Number: $phone \n\n Website: $website \n\n Features: $features \n\n Budget: $budget \n\n Timeline: $timeline \n\n Content: $content \n\n Additional Info: $additional";
$from = $email;

if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_POST['phone']) || !empty($_POST['features']) || !empty($_POST['budget']) || !empty($_POST['timeline']) || !empty($_POST['content'])){ 

if (mail($to, $subject, $body, $headers)) {
    header("Location: success.php");
} else {
    header("Location: error.php");}
}
?>

2 个答案:

答案 0 :(得分:0)

你没有;似乎设置了$标头。这可能是问题,设置它以便用$ headers发送它

答案 1 :(得分:0)

if声明中,如果您检查是否通过POST收到了所有内容,则应使用“和”比较器&&,而不是“或”比较器|| 。在您的情况下,如果POST变量中只有一个不为空,则条件为真 - 除非这是您想要的?

您还应该检查POST变量之前的内容将其值分配给顶部的变量。你可以做一些像Tibbers建议的事情。