2012-02-17 7 views
1

のは、私の現在のURLは、私が唯一$_GET['page']を許可するには、このページに検証するにはどうすればよい

http://domain.com/category/cars/?page=2 

あるとしましょうか?

ユーザーが次のURLに入力すると、エラーページに移動します。

http://domain.com/category/cars/?page=2&bar=foo 
http://domain.com/category/cars/?foo=bar&page=2 
http://domain.com/category/cars/?foo=bar&bar=foo 

私に教えてください...

+2

なぜあなたは彼らがURLに追加し、他に何を気にしますか? – ceejayoz

答えて

4

さて、あなたは使用することができます:

if(count($_GET) > 1 || !isset($_GET['page'])) { /*error*/ } 
0

あなたはあなたのアプリケーションで使用されるGET/POST変数のだけ気にしなければなりません。それに応じて検証してエスケープし、設定されているかどうかを確認します。残りの部分は無視する必要があります。エラーを気にする必要はありません。

0
$allowedKeys = array('page'); 


    $_GET = array_intersect_key($_GET, array_flip($allowedKeys)); 

あなたは、彼らが$_GET方法を経由して受理されませんように、あなたの望ましくないパラメータと値を心配する必要はありません。上記のコードでは、唯一許さ$_GETパラメータは、「ページ」

0

である私はこれを行う可能性があります:

<?php 
if ($_GET) 
    { 
    foreach($_GET as $key=>$value) 
     { 
     if($key!='page') 
      { 
      $error=true; 
      } 
     } 
    } 
?> 
関連する問題