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