저는 PHP와 유사하며 문제가 어디에 있는지 이해하지 못합니다.
때때로 PHP 함수가 나에게
와 같은 빈 메시지를 보냅니다.부모님 이름
너무 늦었어요:
린:
전화번호:
이메일:
생년월일:
메시지 텍스트:
하지만 다음과 같은 값으로 채워져야 합니다
부모 이름 테스트
실수가 너무 많습니다: 테스트
린: 테스트
전화번호: Test
이메일: test@test
생년월일: 21313
메시지 텍스트: Testing
이것은 내 PHP 코드입니다
으아악무엇이 잘못되었는지 조언 부탁드립니다.
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
的内容(即 ""
、0
、false
、<代码>null,[]
)。 (如果“0”是预期且可接受的值,请注意它的“空性”!)另一方面,isset
对于任何非 null
필드가 설정됩니다(빈 문자열 ""
). 또한 empty
는 < code를 반환합니다. false
와 동일한 경우 >true(예: ""
, 0
, false
, null
, []
). (
) 반면 isset
null
이 아닌 모든 콘텐츠에 대해 true를 반환합니다.