проверка параметров php url - PullRequest
       1

проверка параметров php url

1 голос
/ 23 сентября 2010

Я создаю сайт, который полагается на $ _GET для правильной работы.Это работает следующим образом: http://www.example.com/show?q=14&i=48 q и i - это идентификаторы на сервере MySQL, которые должны быть получены с помощью mysql_query () и т.п.Параметры всегда целые.

Если кто-то вводит URL без каких-либо параметров, то и PHP, и MySQL выдают ошибки.PHP для неопределенных переменных и MySQL для неправильного синтаксиса.

То, что я пробовал до сих пор, не работает, я всегда получаю "Ошибка";

if (is_int($_GET['q']) AND is_int($_GET['i']))
{
 echo "All good.";
}
else
{
 echo "Error.";
}

Что я делаюздесь не так.

Спасибо, atno

Ответы [ 3 ]

2 голосов
/ 23 сентября 2010

Это потому, что вы проверяете тип переменной, а не ее содержимое.Все, что поступает из строки запроса через $_GET, считается строкой, поэтому вместо is_int() следует использовать ctype_digit(), а также проверять наличие значений с empty().

2 голосов
/ 23 сентября 2010

Вы должны использовать is_numeric вместо is_int.
is_int возвращает false для числовых строк.

Недостатком является то, что функция is_numeric такжевозвращает true для чисел типа "1.5".Если вы не хотите этого, вы можете проверить функцию здесь

0 голосов
/ 23 сентября 2010

Вы должны попробовать isset ($ _ GET [q])

if(isset($_GET[q]) && isset($_GET[i])){

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