>  Q&A  >  본문

이러한 입력 유효성 검사가 작동하지 않는 이유는 무엇입니까? (PHP, HTML, SMTP 서버, PHPmailer를 통해 문의하세요)

저는 PHP, HTML, SMTP 서버 및 PHPmailer를 사용하여 사용자 입력 유효성 검사가 포함된 문의 양식을 만들고 있습니다. 하지만 "제출" 버튼을 누른 후 오류가 발생했습니다.

잘못된 주소: (발신자): 치명적인 오류: 잡히지 않은 PHPMailerPHPMailerException: 잘못된 주소: (from): C:xampphtdocsRESPONSIVE SITE3_2SupplierphpmailerphpmailersrcPHPMailer.php:1324 스택 추적: #0 C:xampphtdocsRESPONSIVE SITE3_2send-email.php(74): PHPMailerPHPMailerPHPMailer->setFrom('', '') #1 {main}은 C:xampphtdocsRESPONSIVE SITE3_2vendorphpmailerphpmailersrcPHPMailer.php 라인 1324에 발생합니다.

PHP 코드:

으아악

HTML 코드

으아악

다양한 튜토리얼을 시도했지만 성공하지 못했습니다. 이 양식이 필요해요

저는 이 분야가 처음입니다. 아주 간단한 언어로 설명해 주세요 :)

P粉613735289P粉613735289381일 전408

모든 응답(1)나는 대답할 것이다

  • P粉924915787

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

    진단

    확인이 필요한 경우 if 语句为 true,则将设置一个字符串变量 $emailErr.

    그런 다음 코드는 if 블록을 다시 종료하고 스크립트는 계속해서 즐거운 방식으로 이메일 전송을 시도합니다. 이를 방지하기 위한 논리가 코드에 없습니다.

    마지막으로 $emailErr는 코드가 해당 변수를 포함할 수 없는 다른 HTML 페이지로 사용자를 리디렉션하기 때문에 사용되지 않습니다.

    솔루션

    검증이 실패하면 이메일 전송 부분을 건너뛰도록 코드에 지시하는 추가 논리가 필요합니다. 이를 영리하게 수행하는 매우 간단한 방법은 "플래그" 변수를 사용하는 것입니다.

    예:

    으아악

    추신: 정규 표현식이 너무 제한적입니다. 이메일 주소에 허용되는 문자는 무엇인가요? . 이미 FILTER_VALIDATE_EMAIL를 사용하고 있으므로 어떠한 경우에도 필요하지 않습니다.

    회신하다
    0
  • 취소회신하다