我有一個PHP函數mail()的問題。它不發送任何電子郵件:(。我是全新的PHP,並通過使用大量的教程創建代碼,所以我認爲這可能是錯誤的。我想驗證用戶是否輸入了有效的電子郵件,如果沒有,回聲沒有,因爲它會顯示紅色的錯誤無論如何,PHP - 函數郵件不起作用
現在,當電子郵件無效它顯示「電子郵件發送」消息但首先所有我想實際電子郵件發送。
同時舉辦擋住了SSL協議如果沒有標題「從::」。它是正確放置?
<h4>Contact form</h4>
<?php
$NameErr = $EmailErr = $SubErr = $MessErr = "";
$Name = $Email = $Subject = $Message = "";
$To = "[email protected]";
$headers = "From: [email protected] Name: $Name\n $Message\n E-Mail: $Email\n";
$n = NULL;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["Name"])) {
$NameErr = "Name is required";
} else {
$Name = test_input($_POST["Name"]);
}
if (!preg_match("/^[a-zA-Z ]*$/", $Name)) {
$NameErr = "Only letters and white space allowed!";
}
if (empty($_POST["Email"])) {
$EmailErr = "Email is required";
} else {
$Email = test_input($_POST["Email"]);
if (!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
$EmailErr = "Invalid email format";
}
}
if (empty($_POST["Subject"])) {
$SubErr = "Subject is required";
} else {
$Message = test_input($_POST["Subject"]);
}
if (empty($_POST["Message"])) {
$MessErr = "Message is required";
} else {
$Message = test_input($_POST["Message"]);
}
}
$Name = test_input($_POST["Name"]);
$Email = test_input($_POST["Email"]);
$Subject = test_input($_POST["Subject"]);
$Message = test_input($_POST["Message"]);
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<p><input class="w3-input w3-padding-16" type="text" placeholder="Name" name="Name"></p>
<span class="error"><?php echo $NameErr; ?></span>
<p><input class="w3-input w3-padding-16" type="text" placeholder="Email" name="Email"></p>
<span class="error"><?php echo $EmailErr; ?></span>
<p><input class="w3-input w3-padding-16" type="text" placeholder="Subject" name="Subject"></p>
<span class="error"><?php echo $SubErr; ?></span>
<p><input class="w3-input w3-padding-16" type="text" placeholder="Message" name="Message"></p>
<span class="error"><?php echo $MessErr; ?></span>
<p>
<button class="w3-btn w3-grey w3-padding-large w3-hover-green" type="submit" value="1" name="pressed">
<i class="fa fa-paper-plane"></i> SEND MESSAGE
</button>
</p>
</form>
<?php
if (isset($_POST["pressed"])) {
mail($To, $Subject, $Message, $headers);
if (empty($_POST["Name" or "Email" or "Subject" or "Message"])) {
echo $n;
}
if (isset($Name) and ($Email) and ($Subject) and ($Message)) {
echo "Email sent.";
}
}
?>
</div>
首先啓用錯誤檢查並修復任何錯誤提及 – mplungjan
你能告訴我該怎麼做嗎? – BlackMagic
請搜索谷歌或SO爲PHP錯誤報告 – mplungjan