| Автор |
Сообщение |
Сообщения: 36
Страна: Россия |
 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 работает.
|
Сообщения: 50
Страна: Украина |
 01.07.2008 в 22:21 [Отредактировано: 01.07.2008 в 22:25]
Может, такого id как тот, который посылается в запросе в $id не существует? И вообще впринципе я в скрипте не видел $id кроме как в запросе. Суньте перед резалтом echo $id;
|
Сообщения: 50
Страна: Россия |
 02.07.2008 в 06:16
Я реально со стула упал с такого:
Код:
if ($result == 'true') {echo "<p>Обновлен!</p>";}
Попробуйте свой запрос вывести куда-нибудь в файл или на экран, а потом запустите его из консольки, может он и не должен ничего вставлять 
|
Сообщения: 36
Страна: Россия |
 02.07.2008 в 09:45 [Отредактировано: 02.07.2008 в 09:46]
Id летит из формы в которую id выдерут в масиве.
Код: <input name="id" type="hidden" value="$myrow=[id]">
Что то все ни как не могу обновить, может есть еще идеи как обоновить? 
|
Сообщения: 1289
Страна: Беларусь |
 02.07.2008 в 11:50
Выведите вопрос вместо выполнения, я не уверен что он правильно формируется (скорее всего ID недолетает).
|
Сообщения: 1167
Страна: Украина |
 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>";
...
|
Сообщения: 577 |
 02.07.2008 в 12:04 [Отредактировано: 02.07.2008 в 12:04]
Цитата (ezdorov): Код: <input name="id" type="hidden" value="$myrow=[id]">
это что за садо-мазо? )))
|
Сообщения: 36
Страна: Россия |
 02.07.2008 в 12:19 [Отредактировано: 02.07.2008 в 12:19]
 да, точно id не долетает... только не знаю как это исправить?
|
Сообщения: 577 |
 02.07.2008 в 13:37
$myrow['id'] может это?
|
Сообщения: 1167
Страна: Украина |
 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'];
это не топик, а чемпионат по хардкодингу)))
|
Сообщения: 577 |
 02.07.2008 в 15:39
Там видимо echo "<input....../>";
|
Сообщения: 1167
Страна: Украина |
 02.07.2008 в 15:44
Цитата (lyoxa): Там видимо echo "<input....../>";
да пофиг, автор может не совсем енот и сам поймёт где ошибка была оО
|
Сообщения: 1289
Страна: Беларусь |
 02.07.2008 в 16:05
Хотя конечно этот код лучше спрятать и никому не показывать.
Если злой "кулхацкер" запишет в ваш хиден строку ' OR '1'='1
То вся таблица заполниться теми данными что он введет в поля формы...
|
Сообщения: 1167
Страна: Украина |
 02.07.2008 в 16:16
DROP DATABASE ... лучше работает при скл инжекшн 
|
Сообщения: 1289
Страна: Беларусь |
 02.07.2008 в 16:19
Цитата (Zionit): DROP DATABASE ... лучше работает при скл инжекшн  Можно на этом примере показать как сделать дроп?
|
Сообщения: 128
Страна: Россия |
 02.07.2008 в 16:24
Мдааа суровый код......
Вообще говоря если закрыть глаза на прочие ошибки и ответить только на вопрос выдвинутый в тему. Есть очень полезная функция mysql_error()...... Она может много чего интересного рассказать....
|
Сообщения: 50
Страна: Россия |
 02.07.2008 в 17:33
SmartDesign, можно просто ' OR 1
1';DROP TABLE aho;--
|
Сообщения: 1167
Страна: Украина |
 02.07.2008 в 18:37
Цитата: ' OR 1; DROP DATABASE db_name /*
Вроде так, в конце /* чтобы код после айди не сработал.
|
Сообщения: 1167
Страна: Украина |
 02.07.2008 в 18:38
Интересно, думаю можно даже написать СКЛ запрос который удалит все базы или все таблицы 
|
Сообщения: 985
Страна: Россия |
 02.07.2008 в 18:58
Ерунда, нельзя дропнуть активную базу данных.
Хотя от MySQL всего можно ожидать.
|