0

私は何年も探し回っていましたが、このコードを編集する簡単な方法を見つけられなかったので、ユーザーが必須フィールド (すべてのフィールドが必須) に何も入力していない場合に、ユーザーに次のように求めるアラートが表示されます。何か入力してください。

誰でも助けることができますか?

<?php
    $field_name = $_POST['name'];
    $field_email = $_POST['email'];
    $field_message = $_POST['message'];

    $mail_to = 'you@yourdomain.com';
    $subject = 'Site Mail';

    $body_message = 'From: '.$field_name."\n";
    $body_message .= 'Email: '.$field_email."\n";
    $body_message .= 'Message: '.$field_message;

    $headers = 'From: '.$field_email."\r\n";
    $headers .= 'Reply-To: '.$field_email."\r\n";

    $mail_status = mail($mail_to, $subject, $body_message, $headers);

    if ($mail_status) { ?>
        <script language="javascript" type="text/javascript">
            alert('Thanks! Your email has been sent.');
            window.location = 'index.html';
        </script>
    <?php
    }
    else { ?>
        <script language="javascript" type="text/javascript">
            alert('Sorry, something went wrong.');
            window.location = 'index.html';
        </script>
    <?php
    }
?>
4

4 に答える 4

1

機能を利用したい場合は、 required属性を使用できhtml5ます。

このLINKを試してください。required属性 の使用方法の簡単なデモを示します。こっち

于 2013-08-14T10:58:33.747 に答える
0

必須フィールドを確認する最も一般的な方法は、クライアント側 (ユーザーに通知するため) とサーバー側 (送信前にデータが正当であることを確認するため) の両方です。

クライアント側では、フォームが送信された時点で、フィールドが正しいかどうかを確認し、ユーザーに間違いを修正するように依頼する必要があります。これを行うために利用できる優れたヘルパー ライブラリが多数あります。より一般的なライブラリのいくつかはhttp://parsleyjs.org/http://jqueryvalidation.org/で、どちらも jQuery を使用しており、簡単な例を使用して開始できます。

サーバー側では、一部のコメンターが指摘しているように、現在のスクリプトはヘッダー インジェクションやその他の厄介なものに対して脆弱です。多くの悪いことが起こるのを防ぐため、swiftmailer などのライブラリの使用に切り替えることをお勧めします。これは、電子メールを送信する方法の本当に簡単な例ですhttp://swiftmailer.org/docs/sending.html

サーバー側の検証を例に追加するには、単純なアプローチとして、$_POST['name'];呼び出す前にの値を確認することです$mailer->send($message);

于 2013-08-14T11:18:36.267 に答える