当填写所有必填字段并点击发送时,我的表单会给我一条成功消息。 但是缺少字段时没有错误消息或成功消息。有人发现错误吗? 我不知道PHP,所以要善良!
请帮忙,明天我需要这个!
<?php
function died($error) {
// your error code can go here
echo "Wir freuen uns sehr leid, aber es gab Fehler(s) mit dem Formular, das Sie vorgelegt gefunden. ";
echo "Diese Fehler werden unten angezeigt.<br /><br />";
echo $error."<br /><br />";
echo "Bitte gehen Sie zurück und diese Fehler zu beheben.<br /><br />";
die();
}
if(!empty($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "xxxx@xxx.xxx";
$email_subject = "Nachricht von Website Kontaktformular";
// validation expected data exists
if(empty($_POST['vorname']) || empty($_POST['nachname']) || empty($_POST['email']) || empty($_POST['nachricht'])) {
died('Es tut uns leid, aber es scheint ein Problem mit dem Formular, das Sie vorgelegt werden.');
}
$vorname = $_POST['vorname']; // required
$nachname = $_POST['nachname']; // required
$email_from = $_POST['email']; // required
$email = $_POST['email']; // geändert
$telefon = $_POST['telefon']; // not required
$nachricht = $_POST['nachricht']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'Die Email Adresse, die Sie eingeben, nicht gültig zu sein scheint.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$vorname)) {
$error_message .= 'Die Vorname Sie eingeben, nicht gültig zu sein scheint.<br />';
}
if(!preg_match($string_exp,$nachname)) {
$error_message .= 'Die Nachname Sie eingeben, nicht gültig zu sein scheint.<br />';
}
if(strlen($nachricht) < 2) {
$error_message .= 'Die Nachricht, die Sie eingeben, nicht gültig zu sein scheint.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Formular einzelheiten unten.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Vorname: ".clean_string($vorname)."\n";
$email_message .= "Nachname: ".clean_string($nachname)."\n";
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Telefon: ".clean_string($telefon)."\n";
$email_message .= "Nachricht: ".clean_string($nachricht)."\n";
// create email headers
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- place your own success html below -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p style="font-size:1.125em; font-family:Arial, Helvetica, sans-serif; background-color:#a6bf48; margin-top:90px; text-align:center; margin-left:auto; margin-right:auto; width:960px; padding:20px;">
Vielen Dank für ihre Nachricht! Ich werde mich sobald wie möglich mit ihnen in Verbindung setzen.<br><br>
<a href="psychologin.html" style="color:#FFF">Zurück</a>
</p>
</body>
</html>
<?php
}
die();
?>
答案 0 :(得分:0)
乍一看,如果你没有填写电子邮件文本字段,那么什么都不会出现,所以你把它放在错误的地方 - 尝试从以下地方更改:
if(!empty($_POST['email'])){
要:
if(isset($_POST)){
<强>更新强>
此外,在整理代码时,您已经写过几次 died()
- 这应该是die()
答案 1 :(得分:0)
MrJ是对的,你不应该把你的决定点放在1个领域。您可能需要考虑将所有emptys()
替换为isset()
。根据php手册,如果没有定义变量,空将不会启动错误,这似乎是你想要完成的。