Авторизация:

Почему не работает UPDATE?

Форум  |  Программирование  |  Страницы:   1   2 
Поиск

Найти сообщения:  За сутки  |  Без ответов
Автор Сообщение
Ссылка01.07.2008 в 22:07  [Отредактировано: 01.07.2008 в 22:12]
Код:
<?php
if (isset ($name)
&& isset ($father_name)
&& isset ($family_name)
&& isset ($day_delivery)
&& isset ($mobile_telephone)
&& isset ($home_telephone)
&& isset ($another_telephone)
&& isset ($mail)
&& isset ($name_company)
&& isset ($position)
&& isset ($charge))

{$result = mysql_query ("UPDATE aho SET name='$name', father_name='$father_name', family_name='$family_name', day_delivery='$day_delivery', mobile_telephone='$mobile_telephone', home_telephone='$home_telephone', another_telephone='$another_telephone', mail='$mail', name_company='$name_company', position='$position', charge='$charge' WHERE id='$id'");

if ($result == 'true') {echo "<p>Обновлен!</p>";}
else {echo "<p>Ошибка!</p>";}}
else {echo "<p>Не все поля заполнены!</p>";}
?>


После submit скрипт говорит: Обновлен! Но реально нет обновления. Почему? Как исправить? INSERT работает.
Ссылка01.07.2008 в 22:21  [Отредактировано: 01.07.2008 в 22:25]
Может, такого id как тот, который посылается в запросе в $id не существует? И вообще впринципе я в скрипте не видел $id кроме как в запросе. Суньте перед резалтом echo $id;
Ссылка02.07.2008 в 06:16
Я реально со стула упал с такого:
Код:

if ($result == 'true') {echo "<p>Обновлен!</p>";}


Попробуйте свой запрос вывести куда-нибудь в файл или на экран, а потом запустите его из консольки, может он и не должен ничего вставлять
Ссылка02.07.2008 в 09:45  [Отредактировано: 02.07.2008 в 09:46]
Id летит из формы в которую id выдерут в масиве.

Код:
<input name="id" type="hidden" value="$myrow=[id]">


Что то все ни как не могу обновить, может есть еще идеи как обоновить?
Ссылка02.07.2008 в 11:50
Выведите вопрос вместо выполнения, я не уверен что он правильно формируется (скорее всего ID недолетает).
Ссылка02.07.2008 в 11:56
Omg

Код:
...

{

if (mysql_query ("UPDATE aho SET name='$name', father_name='$father_name', family_name='$family_name', day_delivery='$day_delivery', mobile_telephone='$mobile_telephone', home_telephone='$home_telephone', another_telephone='$another_telephone', mail='$mail', name_company='$name_company', position='$position', charge='$charge' WHERE id='$id'")) echo "<p>Обновлен!</p>";
else echo "<p>Ошибка!</p>";

}
else echo "<p>Не все поля заполнены!</p>";

...
Ссылка02.07.2008 в 12:04  [Отредактировано: 02.07.2008 в 12:04]
Цитата (ezdorov):
Код:
<input name="id" type="hidden" value="$myrow=[id]">

это что за садо-мазо? )))
Ссылка02.07.2008 в 12:19  [Отредактировано: 02.07.2008 в 12:19]
да, точно id не долетает... только не знаю как это исправить?
Ссылка02.07.2008 в 13:37
$myrow['id'] может это?
Ссылка02.07.2008 в 15:31
Цитата (lyoxa):
Цитата (ezdorov):
Код:
<input name="id" type="hidden" value="$myrow=[id]">

это что за садо-мазо? )))

А я этого извращения не заметил xDDD


Код:
<input name="id" type="hidden" value="<?php echo $myrow['id']; ?>">

....

$id = $_REQUEST['id'];


это не топик, а чемпионат по хардкодингу)))
Ссылка02.07.2008 в 15:39
Там видимо echo "<input....../>";
Ссылка02.07.2008 в 15:44
Цитата (lyoxa):
Там видимо echo "<input....../>";

да пофиг, автор может не совсем енот и сам поймёт где ошибка была оО
Ссылка02.07.2008 в 16:05
Хотя конечно этот код лучше спрятать и никому не показывать.

Если злой "кулхацкер" запишет в ваш хиден строку ' OR '1'='1

То вся таблица заполниться теми данными что он введет в поля формы...
Ссылка02.07.2008 в 16:16
DROP DATABASE ... лучше работает при скл инжекшн
Ссылка02.07.2008 в 16:19
Цитата (Zionit):
DROP DATABASE ... лучше работает при скл инжекшн
Можно на этом примере показать как сделать дроп?
Ссылка02.07.2008 в 16:24
Мдааа суровый код......
Вообще говоря если закрыть глаза на прочие ошибки и ответить только на вопрос выдвинутый в тему. Есть очень полезная функция mysql_error()...... Она может много чего интересного рассказать....
Ссылка02.07.2008 в 17:33
SmartDesign, можно просто ' OR 1
1';DROP TABLE aho;--
Ссылка02.07.2008 в 18:37
Цитата:
' OR 1; DROP DATABASE db_name /*

Вроде так, в конце /* чтобы код после айди не сработал.
Ссылка02.07.2008 в 18:38
Интересно, думаю можно даже написать СКЛ запрос который удалит все базы или все таблицы
Ссылка02.07.2008 в 18:58
Ерунда, нельзя дропнуть активную базу данных.
Хотя от MySQL всего можно ожидать.