2009-10-21 7 views
2

Я использую строку запроса, например test.php?var=1.Проверить строку запроса (PHP)

Как я могу проверить, если пользователь что-нибудь после того, как другой строки ...

Я пытаюсь перенаправить на index.php, если любая другая строка (строка запроса) следующим образом мои строки var запроса.

Можно ли это проверить?

Например:

 
test.php?var=12134 (This is a good link..) 
test.php?a=23&var=123 (this is a bad link, redirect to index..) 
test.php?var=123132&a=23 (this is a bad link, redirect to index..) 

ответ

18

Я не уверен, я полностью понимаю, что вы хотите, но если вы не заинтересованы в позиционировании параметров это должно работать:

if (isset($_GET['var']) && count($_GET) > 1) { 
    //do something if var and another parameter is given 
} 
+0

У меня есть только один параметр запроса, поэтому это решение для меня хорошо. Большое вам спасибо. – 2009-10-21 07:41:04

6

Посмотрите в $_SERVER['QUERY_STRING'].

0

test.php а = 23? вар = 123 (это плохая связь, перенаправление на индекс ..)

в этом случае, у вас есть только одна переменная отправленное с именем «a», содержащий значение «a?var=123», поэтому оно не должно быть проблема для вас.

test.php? Вар = 123132 & а = 23 (это плохая связь, перенаправление на индекс ..)

В этом случае вы послали две переменные, ("a" и "var").

В общем, вы можете проверить массив $_GET, чтобы узнать, сколько переменных было отправлено и действовать соответственно, используя count($_GET).

+0

Я отредактировал мой вопрос, но ваше решение такое же, как у Тома. Спасибо! – 2009-10-21 08:15:23

2

Подобный ответ Том Хей, вы можете также получить разницу аргументы, которые вы ожидаете и те, которые вы на самом деле получаете:

$argKeys = array_keys($_GET); 
$additionalArgKeys = array_diff($argKeys, array('var')); 
var_dump($additionalArgKeys); 
+0

действительно элегантный! Спасибо! – 2009-10-21 08:11:05

0

Я думаю, что вы пытаетесь избавиться от нежелательных параметров. Обычно это делается по соображениям безопасности.

Не будет проблем, если вы предварительно инициализируете каждую используемую вами переменную и используете только переменные с $ _GET ['var'], $ _POST ['var'] или $ _REQUEST ['var'].

Смежные вопросы