我在代码中找不到错误: 即使输入为空(对不起我的英语水平),此代码也会返回错误代码“message = 6”。 谢谢你的帮助。
<?php
if (isset($_POST)) {
extract($_POST);
if (isset($_POST['name'])) {
if (isset($_POST['email'])) {
if (!preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#', $_POST['email'])) {
if (isset($_POST['message'])) {
$name=$_POST['name'];
$message=$_POST['message'];
$email=$_POST['email'];
$message = str_replace("\'", "'", $message);
$destinataire = "name@domain.com";
$sujet = "Formulaire de contact";
$message = "Une nouvelle question est arrivée \n
Nom : $name \n
Email : $email \n
Message: $message";
$entete = "From: $name \n Reply-To: $email";
if (mail($destinataire, $sujet, $message, $entete)) {
header("Location: ../index.php?message=7");
} else {
header("Location: ../index.php?message=6");
}
} else {
header("Location: ../index.php?message=4");
}
} else {
header("Location: ../index.php?message=3");
}
} else {
header("Location: ../index.php?message=2");
}
} else {
header("Location: ../index.php?message=1");
}
} else {
header("Location: ../index.php?message=5");`enter code here`
}
?>
我的输入文字: type =“text”class =“text”name =“email”placeholder =“Email”name =“mail”
修改 我已将POST值分配给变量。 但是if()有问题吗?为什么如果输入为空,php代码返回 message = 6?
答案 0 :(得分:1)
您没有将POST值分配给变量
分配如下
$name=$_POST['name'];
$message=$_POST['message'];
$email=$_POST['email'];
答案 1 :(得分:0)
它是由多个标题代码引起的,这些标题代码在运行时可能会发生冲突 首先检查你是否在标题之前没有发送任何内容 然后改变你的if else机制。您可以使用单一标题代码以字符串形式发送错误消息,如下所示:
header("Location: ../index.php?message=".$msg);