ホームページ  >  に質問  >  本文

PHPメールは空のメールを送信します

私もphpと似ていますが、どこに問題があるのか​​分かりません。

php 関数が

のような空のメッセージを送信することがあります。

両親の名前

遅すぎる:###### リン: ###### 電話番号:###### Eメール:###### 生年月日:###### メッセージテキスト:

ただし、次のような値で満たされる必要があります

親の名前のテスト

間違いが多すぎます: テスト

リン: テスト

電話番号: テスト

電子メール: test@test

生年月日: 21313

メッセージテキスト: テスト

これは私のphpコードです

リーリー

何が問題だったのでアドバイスをお願いします。

P粉225961749P粉225961749225日前431

全員に返信(1)返信します

  • P粉769045426

    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 を返します。

    補足 上記のコードが完成しており、スクリプトがフォーム データを処理してリダイレクトするだけの場合は、HTML ラッパーはまったく必要ありません。決して表示されません。

    返事
    0
  • キャンセル返事