2012-04-09 5 views
0

양식 요소를 파일에 저장하고 다음이 예상대로 작동합니다.양식 요소가 있는지 확인

$t_str .= "viewMandatory=".$_GET['viewMandatory'] ."\n"; 

하지만 $ _GET 만 설정하면 "t_str"문자열에 추가해야합니다.

viewMandatory 값을 양식에서 수신하지 않으면 아무 것도 인쇄하지 않습니다. 위의 진술에이 수표를 추가하는 방법?

+0

[많은] (http://stackoverflow.com/questions/3496971/check-if-post-exists) 유사의 ] (http://stackoverflow.com/questions/3432282/check-if-any-variables-are-passed-in-a-get) 질문 및 [Google 검색은 매우 유익합니다.] (http : // www. google.co.uk/webhp?#hl=en&output=search&sclient=psy-.ab&q=check+if+get+variable+exists&fp=1). – Alex

답변

5
if (!empty($_GET['viewMandatory'])){ 
$t_str .= "viewMandatory=".$_GET['viewMandatory'] ."\n"; 
} 

292 개의 질문이 있으면 empty() 함수를 만나야합니다.

+0

나는 당신이 조건을 둘러싸고있는'()'이 없다고 생각한다. – Joseph

+0

@Joseph, 바보 같은 것에 감사한다. –

1
$t_str .= (!empty($_GET['viewMandatory'])?$_GET['viewMandatory']:null; 

(적어도 나에게, 내가 짧은 형태의 사랑) 쉽게 읽을 수 있지만, 코드가 페이지를 요청할 때마다 실행됩니다 당신이 적은 코드를 이런 식으로. 드래곤의 해결책은 그렇지 않다.

하지만 코드 삽입에 대해 생각해보십시오. 문자열에 추가하기 전에 $ _GET [ 'viewMandatory'] 정확한 경로를 필터링하십시오! 그렇지 않으면 나쁜 코드는 아주 쉽게 주입 예 할 수 있습니다

있습니다
www.yourpage.com/page.php?viewMandatory=';BAD_CODE_HERE (or " instead of ') 
1
Use php isset  


if (isset($_GET['viewMandatory'])){ 
$t_str .= "viewMandatory=".$_GET['viewMandatory'] ."\n"; 
} 
관련 문제