-2

私はPHPの初心者なので、このかなり単純な質問についてはご容赦ください。

私はPHPフォームを次のように設定しています>>

<?php
    if($_POST){
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        $comments = $_POST['comments'];

        if($comments)
            $error = "There was an error, please give us a call at ### ###-####.";
        else{
            if($name=="Name" || $email=="Email" || $message=="Message"){
                $error = "All fields are required, please fill them out and try again.";
            }else
            $header = "From: $name <$email>";
                $message = "Name: $name\n\nEmail: $email\n\nMessage: $message";
                if(mail("email@domain.com", 'Form Submission', $message, $header))
                    $success = "Thanks for sending us your message, we'll get back to you shortly.";
                else
                    $error = "There was an error, please give us a call at ### ###-####.";
        }
        if($error)
            echo '<div class="msg error">'.$error.'</div>';
        elseif($success)
            echo '<div class="msg success">'.$success.'</div>';
    }
?>

基本的な考え方は、フォームの各フィールドに説明テキストが事前に入力されているが、それらをクリックすると、Javascriptを介してクリアされるというものです。フォームに入力せずに送信を押さないようにしたいので、「if($ name == "Name" || $ email == "Email" || $ message == "Message"){」ビット。ただし、そのメッセージが機能している間、フォームはまだ送信中です。どうしてこれなの。また、「コメント」フィールドは実際にはハニーポットであることに注意してください。ありがとう!

4

4 に答える 4

5

phpはサーバーサイドだからです。必要なものについては、JavaScriptの検証を調べる必要があります。PHPで検証するには、フォームを送信する必要があります。

チュートリアルは1つですが、Jqueryの検証をお勧めします

于 2012-10-15T15:22:38.283 に答える
0

「フォームに入力せずに送信を押さないようにしたいので、「if($ name == "Name" || $ email == "Email" || $ message == "Message"){」

適切な検証が満たされるまで送信ボタンのクライアント側を無効にしてから、サーバー側も検証するだけです。@Iznogoodが言ったように、それがあなたのエラーを取得する理由です

于 2012-10-15T15:26:52.307 に答える
0

これはあなたの質問に対する答えではありませんが、新しいhtml5機能に興味があるかもしれませんplaceholder。ここでそれについて読んでくださいここでどのブラウザで動作するかを確認できます(愚かなインターネットエクスプローラー!)。5年前は、これらの「ヒント」を値として設定していましたが、これは検証するのが面倒でした。 placeholderすっごく簡単になります。タグは次のようになります。

<input type="text" name="email" placeholder="Enter Your Email Here" value="">

値が空であることに注意してください。value属性は省略できます。ここでは不要であることを示すために、この属性を残しました。

あなたの元の質問への答えに関しては、他の誰もが正しいです、javascriptは行く方法です。

于 2012-10-15T23:16:36.523 に答える
0

lznogoodが言ったように、PHPはサーバー上のフォームを検証するため、PHPが情報を処理する前に、サーバーに情報を送信する必要があります。

サーバーに送信する前にフォームをユーザー側でチェックする場合は、JavaScriptを使用してそれを行う必要があります(jQueryは使用するのに最適なツールです)。ユーザー側でフォームをチェックした後、フォームを送信するかどうかを決定できます。サーバーにフォームするかどうか。

于 2012-10-15T15:37:15.247 に答える