>  Q&A  >  본문

PHP 메일은 빈 이메일을 보냅니다.

저는 PHP와 유사하며 문제가 어디에 있는지 이해하지 못합니다.

때때로 PHP 함수가 나에게

와 같은 빈 메시지를 보냅니다.

부모님 이름

너무 늦었어요:

린:

전화번호:

이메일:

생년월일:

메시지 텍스트:

하지만 다음과 같은 값으로 채워져야 합니다

부모 이름 테스트

실수가 너무 많습니다: 테스트

린: 테스트

전화번호: Test

이메일: test@test

생년월일: 21313

메시지 텍스트: Testing

이것은 내 PHP 코드입니다

으아악

무엇이 잘못되었는지 조언 부탁드립니다.

P粉225961749P粉225961749225일 전429

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

  • P粉769045426

    P粉7690454262024-04-01 09:38:47

    스크립트가 단지 양식 처리기인 경우, 예를 들어 양식 제출에 대한 응답이 아닌 이상 스크립트가 실행되지 않도록 상단에 if(empty($_POST)) { die('没有表单数据!'); }를 추가할 수 있습니다.

    모든 항목을 입력해야 하는 경우 이메일을 처리하기 전에 각 항목을 확인해야 합니다. 이 isset 塞进一个巨大的 if(isset(...)를 모두 문에 넣을 수 있습니다. 그러나 이 작업을 수행하는 더 간단하고 읽기 쉬운 방법이 있습니다. 먼저 몇 가지 변수를 설정해 보겠습니다.

    으아아아

    그런 다음 필드를 반복하고 값이 존재하면 이를 $data에 추가하고, 그렇지 않으면 오류 주석을 추가합니다.

    으아아아

    오류(=입력 항목 누락)가 있는 경우 이메일이 전송되지 않습니다. 보너스로 이제 기본 작업 도우미 기능을 위해 수정만 하면 되는 재사용 가능한 코드 조각이 생겼습니다. )$fields 数组即可将其用于具有类似功能的其他表单。 (如果您确实需要重用它,则将其包装到函数中是一个好主意;不要复制粘贴代码。function x($post, $fields) { ... }

    여기서는 isset 대신 empty를 사용한다는 점에 유의하세요. 빈 양식을 제출하면

    empty 代替 isset。如果提交空白表单,则会设置字段(为空字符串"")。另请注意, empty 返回 true 对于任何等于 false 的内容(即 ""0false、<代码>null,[])。 (如果“0”是预期且可接受的值,请注意它的“空性”!)另一方面,isset 对于任何非 null 필드가 설정됩니다(빈 문자열 ""). 또한 empty는 < code를 반환합니다. false와 동일한 경우 >true(예: "", 0, false, null, []). (

    "0"이 예상되고 허용되는 값인 경우 "공허함"에 유의하시기 바랍니다!

    ) 반면 isset null이 아닌 모든 콘텐츠에 대해 true를 반환합니다.

    🎜추신: 위 코드가 완전한 코드이고 스크립트가 양식 데이터 및 리디렉션만 처리하는 경우에는 HTML 래퍼가 전혀 필요하지 않습니다. 결코 표시되지 않습니다. 🎜

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