Показать сообщение отдельно
  #63 (permalink)  
Старый 30.09.2017, 13:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dan922
Т.к. эта переменная изначально была определена как integer.
Что?! И еще раз, и запомните хорошо - все что приходит POST/GET запросами, это строки! А приведение integer к integer не приведет к ее "порче", а тем более не сделает из нее NULL.

echo (int)25; //как была 25 объявлена как integer, так ею и останется
//а вот строковое представление 25 станет числом 25
$str = '25';
echo gettype($str) . '<br>';
$str = (int)'25';
echo gettype($str);
//а вот так вашу базу как орех грецкий
//вы уверены, что форма вам уже числа шлет, думаете что город под ID 230 запрашивают
//а на самом деле ваши "дыры прощупывают"  
$val = '230 union select "1", login, passwd ...';
//а вот так не прокатит
$val = (int)$val;
echo $val;


Вы не разобравшись в своих багах несете ахинею. Но это не беда, гораздо хуже, что вы не проверяете и не фильтруете входные данные.

Последний раз редактировалось laimas, 30.09.2017 в 13:43.
Ответить с цитированием