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

これらの入力検証が機能しないのはなぜですか? (PHP & HTML & SMTP サーバー & PHPmailer 経由でお問い合わせください)

私は PHP、HTML、SMTP サーバー、および PHPmailer を使用して、ユーザー入力検証を備えたお問い合わせフォームを作成しています。しかし、「送信」ボタンを押すと、エラーが表示されます:

無効なアドレス: (送信者): 致命的なエラー: キャッチされない PHPMailer\PHPMailer\Exception: 無効なアドレス: (from): C:\xampp\htdocs\RESPONSIVE SITE3_2\Supplier\phpmailer\phpmailer\src\PHPMailer.php:1324 スタックトレース: #0 C:\xampp\htdocs\RESPONSIVE SITE3_2\send-email.php(74): PHPMailer\PHPMailer\PHPMailer->setFrom('', '') #1 {main} は C:\xampp\htdocs\RESPONSIVE SITE3_2\vendor\phpmailer\phpmailer\src\PHPMailer.php 行 1324

をスローします

PHP コード:

リーリー

HTMLコード

リーリー

さまざまなチュートリアルを試しましたが、成功しませんでした。 このフォームが必要です

私はこれについて非常に初心者なので、非常に簡単な言葉で説明してください:)

P粉613735289P粉613735289429日前448

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

  • P粉924915787

    P粉9249157872023-09-07 13:36:42

    ######診断######

    いずれかの検証 if ステートメントが true の場合、文字列変数

    $emailErr

    が設定されます。 その後、コードは再び if ブロックを終了し、スクリプトは順調に続行して電子メールの送信を試みます。コードにはこれを防ぐロジックがありません。

    最後に、$emailErr は、コードがその変数を関与できない別の HTML ページにユーザーをリダイレクトするため、決して使用されません。

    ######解決######

    いずれかの検証が失敗した場合は、電子メール送信部分をスキップするようにコードに指示する追加のロジックが必要です。これを賢く行う非常に簡単な方法は、「フラグ」変数を使用することです。 ###例えば:### リーリー PS ところで、正規表現は制限が厳しすぎます -

    「電子メール アドレスに使用できる文字は何ですか?」を参照してください。

    FILTER_VALIDATE_EMAIL はすでに使用しているため、いかなる状況でも必要ありません。

    返事
    0
  • キャンセル返事