폼이 전송되었는지 확인하는 중 – PHP

폼 변수를 검증 클래스에 전달해야 하는지 여부를 결정하기 위해 폼이 제출되었는지 여부를 확인하는 가장 좋은 방법은 무엇입니까?

처음엔 그럴지도 모른다고

isset($_POST) 

하지만 슈퍼글로벌은 어디에나 정의되어 있기 때문에 그것은 항상 사실로 돌아올 것이다.폼의 각 요소를 다음과 같이 반복하고 싶지 않습니다.

if(isset($_POST['element1'])
isset($_POST['element2'])
isset(...etc 

이 질문을 쓰면서 저는 훨씬 더 기본적인 해결책을 생각해 냈습니다. 제가 확인할 수 있는 플래그 역할을 할 수 있는 숨겨진 필드를 추가하세요.

깃발을 꽂는 것보다 더 깨끗한 방법이 있을까요?



질문에 대한 답변



일반적인 확인을 위해서POST액션 사용:

if ($_POST) 

편집: 코멘트에 기재되어 있듯이, 이 방법은 경우에 따라서는 기능하지 않는 경우가 있습니다(예를 들면, 이름이 없는 체크 박스나 버튼).다음 항목을 사용해야 합니다.

if ($_SERVER['REQUEST_METHOD'] == 'POST') 



어때.

if($_SERVER['REQUEST_METHOD'] == 'POST') 



실제로 이 기능은 이미 [전송(Submit)]버튼이 실행하고 있습니다.

다음 폼에서 시도해 보십시오.

<form method="post"> <input type="submit" name="treasure" value="go!"> </form> 

그런 다음 PHP 핸들러에서 다음을 수행합니다.

if (isset($_POST['treasure'])){ echo "treasure will be set if the form has been submitted (to TRUE, I believe)"; } 



사용하다

if(isset($_POST['submit'])) // name of your submit button 



if ($_SERVER['REQUEST_METHOD'] == 'POST').