Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: != ''
 
 автор: sl1p   (30.12.2008 в 20:06)   письмо автору
 
 

Вообще как-то грустно.
Получаем пост $_POST['standard'] = 0;
<?
$_POST
['standard'] = $_POST['standard'] != '' ? (int)$_POST['standard'] : ''// прошло получили (int)$_POST['standard']


<?
if($_POST['standard'] != ''$query .= "and `standard` = {$_POST['standard']} "// не прошло с таким же постом равным 0.

получилось только if($_POST['standard'] !== '') $query .= "and `standard` = {$_POST['standard']} ";
но оно же не в тему тут.

Как это?

  Ответить  
 
 автор: Trianon   (30.12.2008 в 20:19)   письмо автору
 
   для: sl1p   (30.12.2008 в 20:06)
 

в тему. только я бы написал так.
<?
if($_POST['standard'] == ''$_POST['standard'] = false;
//...
if($_POST['standard'] !== false$query .= " and `standard` = ".intval($_POST['standard']);

  Ответить  
 
 автор: xx77   (30.12.2008 в 21:07)   письмо автору
 
   для: Trianon   (30.12.2008 в 20:19)
 

а как-же Notice ?))
и где проверка if (isset($_POST['standard'])) ?

// отрицательное значение тоже пройдёт ,

И вопрос может-ли что-то получиться , если сравненивать отрицательное число со значениями unsigned ?

  Ответить  
 
 автор: Trianon   (30.12.2008 в 21:09)   письмо автору
 
   для: xx77   (30.12.2008 в 21:07)
 

в коде проверка выполнялась на пустоту поля, а не на отсутствие данных.
Я не вправе постулировать иное.

  Ответить  
 
 автор: xx77   (30.12.2008 в 21:30)   письмо автору
 
   для: Trianon   (30.12.2008 в 21:09)
 

не успел вовремя добавить вопрос в предидущее сообщение.

Вобщем так всё понятно если там и там числа со знаком просто не найдёт ,если такого нет.
Но возможна-ли какая-нибудь ошибка или наоборот совпадение если unsigned ? Достаточно-ли intval() ?

  Ответить  
 
 автор: AcidTrash   (30.12.2008 в 21:37)   письмо автору
 
   для: xx77   (30.12.2008 в 21:30)
 

Достаточно-ли intval() ?
Достаточно.

  Ответить  
 
 автор: xx77   (30.12.2008 в 21:53)   письмо автору
 
   для: AcidTrash   (30.12.2008 в 21:37)
 

Всмысле хотите сказать достаточная защита от инъекции ?
Мне не это интересно , мне всегда как-то кажется не совсем оптимальным intval .
в этом случае сначала из строки получается число (signed) , чтобы опять стать строкой , которую mysql сделает снова числом по непонятной мне логике. И просто хотел поинтересоваться каким образом запишутся байты этого int

  Ответить  
 
 автор: AcidTrash   (30.12.2008 в 22:06)   письмо автору
 
   для: xx77   (30.12.2008 в 21:53)
 

Всмысле хотите сказать достаточная защита от инъекции ?
Да, другое не пропустит.

этом случае сначала из строки получается число (signed) , чтобы опять стать строкой , которую mysql сделает снова числом по непонятной мне логике
Нет.

И просто хотел поинтересоваться каким образом запишутся байты этого int
И сообственно зачем?

  Ответить  
 
 автор: xx77   (30.12.2008 в 23:49)   письмо автору
 
   для: AcidTrash   (30.12.2008 в 22:06)
 

Просто было интересно.

Вообщето разобрался ,
похоже имеет значение применять-ли intval() ,
только при значениях unsigned больше максимального int.
поскольку intval(0x80000001) !== 0x80000001

, а mysql сама приводит числа к типу который у сравниваемого столбца
, если небыло минуса
и даже принимает такие 0x80000001 цифры.

  Ответить  
 
 автор: sl1p   (31.12.2008 в 00:19)   письмо автору
 
   для: xx77   (30.12.2008 в 21:07)
 

>и где проверка if (isset($_POST['standard'])) ?

это аякс, я жсом собираю все поля и поэтому оно всегда сет :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования