-2
<?php
include('backoffice/dbconnect.php');
if(isset($_POST['contact_submitted']))
{
    $nome      = $_POST["name"];
    $email   = $_POST["email"];
    $mensagem  = $_POST["message"];
    if (empty($nome)) {
        $noname = '<span  class="error">Insira o seu nome!</span></br>';
        echo $noname;
    }
    if (empty($email)) {
        $noemail = '<span  class="error">Insira o seu email!</span></br>';
        echo $noemail;
    }
    if (empty($mensagem)) {
        $nomensagem = '<span  class="error">Insira uma mensagem!</span></br>';
        echo $nomensagem;
    }
    else
    {
        global $email;
        mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
              "Nome: $nome\n Email: $email\n Mensagem: $mensagem\n");

        $sucesso = '<span  class="yes">Mensagem enviada com sucesso!</span>';
        echo $sucesso;
    }
} //END IF
?>

このコードの何が問題なのですか? すべてのフィールドを検証し、空でない場合はメッセージを送信します。すべてが空の場合は問題ありませんが、$mensagem が何かを取得した場合は、「echo $sucesso;」と表示されます。しかし、他のすべてのフィールドは空であるため、サポートされていません..

4

3 に答える 3

2
if (empty($nome)) {
    $noname = '<span  class="error">Insira o seu nome!</span></br>';
    echo $noname;
}
else if (empty($email)) {
    $noemail = '<span  class="error">Insira o seu email!</span></br>';
    echo $noemail;
}
else if (empty($mensagem)) {
    $nomensagem = '<span  class="error">Insira uma mensagem!</span></br>';
    echo $nomensagem;
}
else
{
    global $email;
    mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
                    "Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
    );
    $sucesso = '<span  class="yes">Mensagem enviada com sucesso!</span>';
    echo $sucesso;
}

条件ifと でのみ発生しますelse

于 2013-06-29T11:28:53.947 に答える
0

elseこれは、ifs 間のステートメントが欠落しているためです...

<?php
    include('backoffice/dbconnect.php');
    if(isset($_POST['contact_submitted']))
        {
            $nome      = $_POST["name"];
            $email   = $_POST["email"];
            $mensagem  = $_POST["message"];
            if (empty($nome)) {
                $noname = '<span  class="error">Insira o seu nome!</span></br>';
                echo $noname;
            } else if (empty($email)) {
                $noemail = '<span  class="error">Insira o seu email!</span></br>';
                echo $noemail;
            } else if (empty($mensagem)) {
                $nomensagem = '<span  class="error">Insira uma mensagem!</span></br>';
                echo $nomensagem;
            } else {
                global $email;
                mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
                "Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
            );
            $sucesso = '<span  class="yes">Mensagem enviada com sucesso!</span>';
            echo $sucesso;
        }
    } //END IF
?>

ただし、これは一度に 1 つのエラー メッセージしか表示しません。1 つのエラー変数を設定してエラー文字列を格納し、この文字列が空かどうかを確認し、そうでない場合はメールなどを送信し、そうでない場合は文字列をエコーすることができます

<?php
    include('backoffice/dbconnect.php');
    if(isset($_POST['contact_submitted']))
        {
            $nome      = $_POST["name"];
            $email     = $_POST["email"];
            $mensagem  = $_POST["message"];
            // initialize error variable
            $error     = '';
            if (empty($nome)) {
                $error .= '<span  class="error">Insira o seu nome!</span></br>';
            } if (empty($email)) {
                $error .= '<span  class="error">Insira o seu email!</span></br>';
            } if (empty($mensagem)) {
                $error .= '<span  class="error">Insira uma mensagem!</span></br>';
            }
            if ($error == '') {
                global $email;
                mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
                "Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"

                $sucesso = '<span  class="yes">Mensagem enviada com sucesso!</span>';
                echo $sucesso;
            } else {
                echo $error;
            };
        }
    } //END IF
?>
于 2013-06-29T11:38:35.427 に答える
0
if (empty($nome)) {
    $noname = '<span  class="error">Insira o seu nome!</span></br>';
    echo $noname;
}
if (empty($email)) {
    $noemail = '<span  class="error">Insira o seu email!</span></br>';
    echo $noemail;
}
if (empty($mensagem)) {
    $nomensagem = '<span  class="error">Insira uma mensagem!</span></br>';
    echo $nomensagem;
} 
if(!empty($nome) && !empty($email) && !empty($mensagem))
{
    global $email;
    mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
                    "Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
    );
    $sucesso = '<span  class="yes">Mensagem enviada com sucesso!</span>';
    echo $sucesso;
}

複数のフィールドが空の場合、複数の検証エラーも表示されます。ifそのため、ステートメントの代わりに単純なステートメントを使用if else if..elseしました

于 2013-06-29T11:31:43.677 に答える