Как мне проверить $ _GET, чтобы разрешить только определенный ключ - PullRequest
1 голос
/ 17 февраля 2012

Допустим, мой текущий URL-адрес

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

Как мне проверить на этой странице, чтобы разрешить только $_GET['page']?

Если пользователь введет 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

Дайте мне знать ..

Ответы [ 4 ]

4 голосов
/ 17 февраля 2012

Ну, вы можете использовать:

if( count($_GET) > 1 || !isset($_GET['page'])) { /*error*/ }
0 голосов
/ 17 февраля 2012

Я мог бы сделать это:

<?php
if ($_GET)
  {
    foreach($_GET as $key=>$value)
      {
        if($key!='page')
          {
            $error=true;
          }
      }
  }
?>
0 голосов
/ 17 февраля 2012
    $allowedKeys = array('page');


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

Вам не придется беспокоиться о нежелательных параметрах и значениях, так как они не будут приняты методом $_GET.С помощью приведенного выше кода единственными допустимыми $_GET параметрами являются 'page'

0 голосов
/ 17 февраля 2012

Вы должны заботиться только о переменных GET / POST, используемых в вашем приложении. Проверьте и удалите их соответственно, проверьте, установлены ли они. Остальные следует игнорировать - вам не нужно заботиться о них и отображать ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...