私は 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粉9249157872023-09-07 13:36:42
######診断######
いずれかの検証 if ステートメントが true の場合、文字列変数
$emailErr が設定されます。
その後、コードは再び if
ブロックを終了し、スクリプトは順調に続行して電子メールの送信を試みます。コードにはこれを防ぐロジックがありません。
最後に、$emailErr
は、コードがその変数を関与できない別の HTML ページにユーザーをリダイレクトするため、決して使用されません。
いずれかの検証が失敗した場合は、電子メール送信部分をスキップするようにコードに指示する追加のロジックが必要です。これを賢く行う非常に簡単な方法は、「フラグ」変数を使用することです。
###例えば:###
リーリー
PS ところで、正規表現は制限が厳しすぎます -
。 FILTER_VALIDATE_EMAIL はすでに使用しているため、いかなる状況でも必要ありません。