【问题标题】:Contact form, script error if else联系表格,否则脚本错误
【发布时间】:2014-07-14 07:32:33
【问题描述】:

我没有在我的代码中发现错误: 即使输入为空,此代码也会返回错误代码“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 ?

【问题讨论】:

  • mail() 函数返回布尔值,很可能是 false,这就是为什么它处于 else 条件下

标签: php html forms contact


【解决方案1】:

您没有将 POST 值分配给变量

如下分配

$name=$_POST['name'];
$message=$_POST['message'];
$email=$_POST['email'];

【讨论】:

    【解决方案2】:

    多头代码在运行中可能发生冲突。
    首先检查您在标头之前没有发送任何内容。
    然后改变你的 if else 机制。您可以在单个标头代码中以字符串形式发送错误消息,如下所示:

    header("Location: ../index.php?message=".$msg);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      相关资源
      最近更新 更多