[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: $_GET выдает строку
Sanches
У меня вопрос касательно суперглобального Массива $_GET. Значит задумка следующая, сделать один файл для отображения категорий путем передачи в него переменной из ссылок. Естественно это будет целое число, однако для безопасности в начале файла нужно сделать проверку (действительно ли там число).

Пробовал сделать таким способом


//Проверяем тип переменной id, если это не число выводим страницу 404
$get_string = gettype($_GET["id"]);
if ($get_string != "integer")
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('./404.html'));
}



Однако, как я понял из массива $_GET переменная уже поступает в виде строки и выдает тип "string".

Может кто-нибудь поможет решить эту проблему или посоветует другой способ реализации этой задумки?



Спустя 1 минута, 15 секунд (23.02.2011 - 14:26) nugle написал(а):
is_int();

Спустя 6 минут, 35 секунд (23.02.2011 - 14:33) Sanches написал(а):
Цитата
is_int();


Не совсем понял???

Спустя 49 секунд (23.02.2011 - 14:33) Zerstoren написал(а):
Ммм, переменные в _GET всегда содержат строку.
сделай просто
$int = (int) $_GET['id'];

и у тебя 100% будут попадать только числа.

Спустя 8 минут, 59 секунд (23.02.2011 - 14:42) alex12060 написал(а):
(int)$_GET['id'];

Спустя 4 минуты, 53 секунды (23.02.2011 - 14:47) nugle написал(а):
кстати да, а потом проверять is_int();

Спустя 10 минут, 35 секунд (23.02.2011 - 14:58) Sanches написал(а):
Это понятно, но если из файла не число придет? Тип то все равно int останется.

Спустя 12 минут, 3 секунды (23.02.2011 - 15:10) eXaM написал(а):
Можно еще is_numeric() задействовать. Если строкой записано число — эта функция вернет true.

Спустя 7 минут, 52 секунды (23.02.2011 - 15:18) Sanches написал(а):
Ребята всем спасибо огромное, заработало!!!! is_numeric() сработала)))

Спустя 16 минут, 34 секунды (23.02.2011 - 15:34) Dron19 написал(а):
$int = (int) $_GET['id']; - так просто делать нельзя, а если число стоит в середине скажем строки? Ну то есть передают строку и посередине число, то все!
Да и gettype не рекомендуется использовать для выявления типа переменной, гораздо быстрей и лучше будет действовать функции is_nan - is_integer - is_int - is_numeric

Спустя 18 часов, 38 минут, 23 секунды (24.02.2011 - 10:13) linker написал(а):
Dron19
Если число в середине, то результат будет '0'. Важно какое число стоит в самом начале строки.
Если очень хочется проверить на строку на предмет наличия только цифирь, то is_numeric() самое то.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.