私もphpと似ていますが、どこに問題があるのか分かりません。
php 関数が
のような空のメッセージを送信することがあります。両親の名前
遅すぎる:###### リン: ###### 電話番号:###### Eメール:###### 生年月日:###### メッセージテキスト:
ただし、次のような値で満たされる必要があります
親の名前のテスト
間違いが多すぎます: テスト
リン: テスト
電話番号: テスト 電子メール: test@test生年月日: 21313
メッセージテキスト: テスト
これは私のphpコードです
リーリー
何が問題だったのでアドバイスをお願いします。P粉7690454262024-04-01 09:38:47
スクリプトが単なるフォーム ハンドラーの場合は、先頭に if(empty($_POST)) { die('No form data!'); }
を追加して実行されないようにすることができます。 , 回答フォームが提出されていない場合。
すべてのフィールドに入力する必要がある場合は、電子メールを処理する前に各フィールドを確認する必要があります。これらすべての isset
を 1 つの巨大な if(isset(...)
ステートメントに詰め込むこともできます。ただし、よりシンプルで読みやすい方法があります。まず、設定しましょう。いくつかの変数を上げます:
次にフィールドをループし、値が存在する場合はそれを $data
に追加します。存在しない場合はエラー コメントを追加します。
エラーが発生した場合 (= フィールドが欠落している場合)、電子メールは送信されません。ボーナスとして、$fields 配列を変更するだけで、同様の機能を持つ他のフォームで使用できる 再利用可能なコード
が手に入りました。 (本当に再利用する必要がある場合は、コードをコピーして貼り付けないで、関数にラップすることをお勧めします。 function x($post, $fields) { ... }
使用基本的な操作ヘルパー関数用。)
ここでは isset
ではなく empty
を使用していることに注意してください。空のフォームが送信された場合、フィールド が設定されます (空の文字列 ""
)。また、empty
は、false
に等しいものに対して true
を返すことにも注意してください (つまり、""
、0)
、false
、<代码>null、[]
)。 ( 「0」が期待され許容可能な値である場合は、その「空」に注意してください! ) 一方、# 以外の値には isset
が設定されます。 ##null の内容は true を返します。