Неполадка в MySQL запросе.

Статус
В этой теме нельзя размещать новые ответы.
Подставлю я вместо price " '; DELETE FROM users WHERE 1 = '1 " и выйдет
SELECT balance FROM users WHERE `login`=''; DELETE FROM users WHERE 1 = '1';

Думаю, о результатах запрос говорить не надо!:)
и что будет :) ? уж точно не то, что вы предполагаете ))))
 
и правильно что не списывает... в результате запроса:
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
в переменную $custombalance пишется результат запроса в виде массива... доступ к нему можно получить через:
$balance= mysql_fetch_assoc($custombalance);
и соответственно доступ к балансу будет:
$user_balance=$balance['balance'];
сводим все в кучу и получаем код:
PHP:
$price = abs($_POST['price']*1); // такой код оставит из присланной строки только числовые положительные значения, если переменная $login тоже приходит в post запросе, с ней лучше поступить так же!
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
$balance= mysql_fetch_assoc($custombalance);
$user_balance=$balance['balance'];
if($user_balance >=$price){
$sql = "UPDATE users SET `balance` = `balance`-'". $price ."' WHERE `login` = '".$login."'";
mysql_query($sql);
}
 
и что будет :) ? уж точно не то, что вы предполагаете ))))
А ты сделай такой запрос ))) и всё увидишь

Код:
SELECT balance FROM users WHERE  `login` =  '';# MySQL вернула пустой результат (т.е. ноль строк).
DELETE FROM users WHERE 1 =  '1';# Затронуто 2 строки.
----------------------
в переменную $custombalance пишется результат запроса в виде массива...

вообще-то не массив, а resource

Для просмотра ссылки Войди или Зарегистрируйся
 
вообще-то не массив, а resource
Согласен, поторопился, но в данном случае не столь существенно каким термином обозвать, главное чтоб результативным был код...
Хотя конечно называть вещи своими именами (особенно объясняя новичку) безусловно нужно! Иначе он потом будет постоянно повторять одну и ту же ошибку...
 
А ты сделай такой запрос ))) и всё увидишь

Код:
SELECT balance FROM users WHERE  `login` =  '';# MySQL вернула пустой результат (т.е. ноль строк).
DELETE FROM users WHERE 1 =  '1';# Затронуто 2 строки.
"сделать запрос" как ты советуешь
и внедрить sql инъекцию в рабочий код на php
суть вещи несколько разные товарищ теоретик :)
 
и что будет :) ? уж точно не то, что вы предполагаете ))))
SELECT balance FROM users WHERE `login` = '';# MySQL вернула пустой результат (т.е. ноль строк). DELETE FROM users WHERE 1 = '1';# Затронуто 2 строки.
Читай внимательно свой пост, а потом мой. Научись внимательно читать студент:tut:
 
PHP:
$price = $_POST['price'];
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
if($custombalance>=$price){
$sql = "UPDATE users SET `balance` = `balance`-'". $price ."' WHERE `login` = '".$login."'";
}

Подставлю я вместо price " '; DELETE FROM users WHERE 1 = '1 " и выйдет
SELECT balance FROM users WHERE `login`=''; DELETE FROM users WHERE 1 = '1';

Думаю, о результатах запрос говорить не надо!:)
попробуйте вставить, свои теоретизации с удалением в РАБОЧИЙ процитированный код, и обламайтесь, болтунишка-теоретик ))))

а сами вы внимательно моё предыдущее сообщение не прочли (вернее совершенно очевидно видно, что вы его и не пытались понять) т.к. заранее были уверены в правильности своих теоретических познаний :)
если еще раз ответите в предыдущем ключе (я прав а ты студент-неуч) я вам приведу доказательства вашего пустозвонства и скажу как называют последователей подобной линии поведения :) и не тыкайне мне, я день смерти брежнева помню :)
 
Ребята, может хватит? Понимаю, весна, гормоны, амбиции... но вспомните п.2.6 в Для просмотра ссылки Войди или Зарегистрируйся
Вам охота подискутировать об уязвимостях?Так здесь есть отдельный раздел, посвященный безопасности, и не надо превращать в помойку раздел PHP, обсуждая вопросы уязвимости в mysql-запросах... по мускулу тоже есть отдельный раздел, кроме того, это очередная бредотема от imedia, которую стоило бы обойти стороной, имхо...

CnecHa3, я встречал студентов, которые давали большую фору многим кодерам.
DrakonHaSh, если помните день смерти Брежнева, то должен помнить и времена FIDO, если, конечно, вращались в IT-отрасли... и вспомните как фидошники смотрели на "выканье"? Именно из фидо и перешли традиции общения в рунете...

P.S. Просьба к модератору закрыть эту тему.
 
  • Нравится
Реакции: t3s
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху