Глюк при получении GET/POST ?

zag

Guest
Глюк при получении GET/POST ?

Привет всем.
Нужно выдернуть и проверить переменную передаваемую через GET или POST, если переменная - число то все оки, если нет - то принимаю ее равной нулю.
Вот такое получилось:
PHP:
$type_id = (isset($_POST["type_id"]) and is_numeric($_POST["type_id"])) ? $_POST["type_id"] : (isset($_GET["type_id"]) and is_numeric($_GET["type_id"])) ? $_GET["type_id"] : 0 ;
Теперь этот кусок отказывается работать если запрос - POST, GET проходит на ура..
Никак не могу понять - в чем проблема ?
Вроде бы все нормально.
Можно переписать по другому, но это дело принципа..
У кого то есть какие либо соображения по этому поводу ?
 

avatar

Guest
а зачем извращатся?
PHP:
$type_id = (int)@$_REQUEST["type_id"];
вполне хватит..
если $_SESSION обязательно игнорировать, тогда:
PHP:
$type_id = (isset($_POST["type_id"]))?(int)$_POST["type_id"]:(int)@$_GET["type_id"];
 

zag

Guest
avatar,
Нет проблемы обойти это, НО интересно ПОЧЕМУ этот кусок отказывается работать как надо..
 

lucas

Guest
PHP:
$type_id = intval( isSet($_GET["type_id"]) ? $_GET["type_id"] : ( isSet($_POST["type_id"]) ? $_POST["type_id"] : 0 ) ) ;
Следим за логикой и ставим скобки.
 
Сверху