我制作了一个简单的联系表格,仅供练习,但由于某种原因,它不起作用。这是我的代码:
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
$required = array('name', 'email', 'onderwerp', 'bericht');
$error = false;
foreach($required as $field) {
if (empty($_POST[$field])) {
$error = true;
}
}
if ($error) {
echo "All fields are required!";
} else {
$to = 'example@example.com';
$datum = date("d-m-Y H:i");
$ip = $_SERVER['REMOTE_ADDR'];
$naam = $_POST['name'];
$email = $_POST['email'];
$from = $_POST['email'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$subject = "New e-mail!: $onderwerp";
$message .= $bericht . "\n\n";
$message .= "-----------------------------\n";
$message .= "From:: " . $name . " (" . $_POST['email'] . ")\n";
$message .= "IP-adres: " . $ip . "\n";
$message .= "Sent on $datum \n";
$headers = 'From: '.$_POST['email'];
$sent_email = mail($to, $subject, $message, $headers);
if (!$sent_email) {
echo "Mail has been sent!";
}
else
{
echo "Woops!";
}
}
}
else {
// Form has not been submitted
}
结果是Woops!但我无法弄清楚为什么它不起作用:( 在此先感谢!!
答案 0 :(得分:1)
您错误地检查了 if
语句。 [实际上邮件是在你的情况下发送的]你的代码应该是。
if ($sent_email) { // I have modified here
echo "Mail has been sent!";
}
else
{
echo "Woops!";
}
答案 1 :(得分:0)
你的逻辑是落后的。 mail()
成功时返回TRUE。但是你把它视为失败。如果应该
if ($sent_email === TRUE) {
success ...
} else {
failure ...
}