2012-02-02 4 views
-3

세 개의 $ _GET 변수가 있으며 올바르게 전달되었는지 확인하고 싶습니다. 내가 지금까지 시도했다

$amnt = $_GET['amnt']; 
$from = $_GET['from']; 
$to = $_GET['to']; 

if ($_GET != 'amnt' || $_GET != 'from' || $_GET != 'to') { 
    $errorno = 1100; 
    echo $errorno; 
    exit; 

그러나 이것은 단지 $ _GET보다는 = 등 누군가가 넣어 수 있기 액수 = & frommm =

+0

왜 실제 값보다 이름이 더 중요합니까? –

+0

각 매개 변수에 허용되는 값이 포함되어 있는지 확인하는 테스트를 작성해야합니다. 허용되는 값이 무엇인지에 대해 언급하지 않았으므로이를 수행하는 방법을 알려 줄 수는 없습니다. – Quentin

+0

나는 값이 영숫자와 같은지 아닌지 확인하기위한 if 문을 이미 가지고있다. –

답변

2

당신의 acutal의 amnt = & 내부의 매개 변수를 확인 관심있는 특정 매개 변수가 설정되어 있는지 확인하고, 그렇다면 사용하십시오. 마찬가지로 : 당신이 매개 변수의 특정 번호를 설정해야하는 경우, 그들 모두를 확인

if (isset($_GET['from'])) { 
    // use $_GET['from'] 
} 

:

if (isset($_GET['from'], $_GET['to'], $_GET['amnt'])) ... 

다른 매개 변수를 설정하거나 매개 변수가 맞춤법이 틀린 경우, 그들을 무시하는 경우. 다른 매개 변수가 설정되지 않았는지 확인하려면 다음과 같이하십시오.

if (array_diff_key($_GET, array_flip(array('amnt', 'from', 'to')))) { 
    // some other keys are set!! 
} 

실제로 요점은 무엇입니까? 그 매개 변수들을 그냥 무시한다면, 누가 신경 쓰겠습니까? example.com/foo?DEBUG=true과 같은 추가 매개 변수가 디버깅에 유용 할 수 있습니다. 지나치게 엄격하게 확인하면 나중에 문제가 발생할 수 있습니다.

관련 문제