http://www.mysite.com/page.php?ind=1'
То есть если добавить после запроса апостроф выдается ошибка
Ошибка -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 3
Ошибка как бы понятна. Но вопрос. Как убрать этот вывод ошибки? Спасибо.
Спустя 12 минут, 34 секунды (28.03.2011 - 14:22) Basili4 написал(а):
m4a1fox
Это дружище не вывод ошидки убирать надо это тебе надо дырку в безопасности убрать чистый SQL-inj
Это дружище не вывод ошидки убирать надо это тебе надо дырку в безопасности убрать чистый SQL-inj
Спустя 6 минут, 13 секунд (28.03.2011 - 14:28) inpost написал(а):
m4a1fox
Какой параметр ты должен получить через GET? Integer или String или Array ?
Какой параметр ты должен получить через GET? Integer или String или Array ?
Спустя 33 минуты, 48 секунд (28.03.2011 - 15:02) m4a1fox написал(а):
Basili4
inpost
Вот как это выводится
inpost
Вот как это выводится
<a href=page.php?ind='.(int)$ind['id'].'>
Спустя 3 минуты, 18 секунд (28.03.2011 - 15:05) m4a1fox написал(а):
Вот так это применяется
$ind = isset($_GET['ind']) ? (int)$_GET['ind'] : 0;
$result = mysql_query("SELECT * FROM menu WHERE id=".(int)$ind) or die(mysql_error());
Спустя 4 минуты, 32 секунды (28.03.2011 - 15:10) Basili4 написал(а):
m4a1fox
и не так. Не чего хакерам ошибки сайта показывать
и не так. Не чего хакерам ошибки сайта показывать
Спустя 50 секунд (28.03.2011 - 15:10) m4a1fox написал(а):
Basili4
Так как закрыть эту ошибку?
Так как закрыть эту ошибку?
Спустя 53 секунды (28.03.2011 - 15:11) m4a1fox написал(а):
Может статьи о безопасности посоветуете, с удовольствием почитаю...
Спустя 9 минут, 29 секунд (28.03.2011 - 15:21) Invis1ble написал(а):
m4a1fox
А я че-то не понял, что-то ты тут недоговариваешь, так сказать:
1.
А я че-то не понял, что-то ты тут недоговариваешь, так сказать:
1.
Цитата |
Ошибка -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 3 |
и
Цитата |
Вот так это применяется $ind = isset($_GET['ind']) ? (int)$_GET['ind'] : 0; $result = mysql_query("SELECT * FROM menu WHERE id=".(int)$ind) or die(mysql_error()); |
Где у тебя тут 3-я строка в запросе?
2. Опять же, в тексте ошибки видно, что в запрос попадают апострофы, а в запросе у тебя явно integer указывается....
Спустя 1 минута, 36 секунд (28.03.2011 - 15:22) m4a1fox написал(а):
Invis1ble
Вот собственно по этому и спрашиваю.
Вот собственно по этому и спрашиваю.
Спустя 59 секунд (28.03.2011 - 15:23) m4a1fox написал(а):
Invis1ble
В запросе указано что запрашиваю int. Но тем не менее если добавить апостроф - появляется вот такая ошибка. Поэтому хочу понять, почему она появляется.
В запросе указано что запрашиваю int. Но тем не менее если добавить апостроф - появляется вот такая ошибка. Поэтому хочу понять, почему она появляется.
Спустя 21 секунда (28.03.2011 - 15:24) Invis1ble написал(а):
Нет, это я спрашиваю, почему ты показываешь запрос не тот, в котором ошибка выдается =)
Спустя 3 минуты, 50 секунд (28.03.2011 - 15:28) m4a1fox написал(а):
Invis1ble
Сейчас. Начинаю судорожно соображать....
Сейчас. Начинаю судорожно соображать....
Спустя 2 минуты (28.03.2011 - 15:30) m4a1fox написал(а):
Таксь.... этот запрос формируется по нажатию на одну из кнопок меню. Вот код вывода самой меню из БД
<a href="./page.php?ind='.(int)$ind['id'].'">
'.$img.' '.$ind['name'].'
</a>
Спустя 52 секунды (28.03.2011 - 15:30) m4a1fox написал(а):
Цитата |
Нет, это я спрашиваю, почему ты показываешь запрос не тот, в котором ошибка выдается =) |
Я показал обработчик запроса.
Спустя 3 минуты, 32 секунды (28.03.2011 - 15:34) Invis1ble написал(а):
Вобщем, это примерно так делается:
Попробуй.
$ind = isset($_GET['ind']) ? intval($_GET['ind']) : null;
if ($ind !== null)
{
$query =
'SELECT *
FROM `menu`
WHERE `id` = ' . $ind;
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($res) > 0)
{
// все норм
}
}
Попробуй.
Спустя 51 секунда (28.03.2011 - 15:35) m4a1fox написал(а):
Invis1ble
Сейчас попробую... отпишусь.
Сейчас попробую... отпишусь.
Спустя 4 минуты, 10 секунд (28.03.2011 - 15:39) m4a1fox написал(а):
Invis1ble
Таксь. Вот полный запрос
Но тем не менее он выводит ошибку
Таксь. Вот полный запрос
$ind = isset($_GET['ind']) ? intval($_GET['ind']) : null;
if ($ind !== null)
{
$result = mysql_query("SELECT * FROM `menu` WHERE id=".(int)$ind) or die(mysql_error());
if(!$result)
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_assoc($result);
}
else
{
$error = 'Упс! Нет такой странички.';
}
}
Но тем не менее он выводит ошибку
Ошибка -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 3
Спустя 3 минуты, 48 секунд (28.03.2011 - 15:43) m4a1fox написал(а):
Invis1ble
Таксь. Вот полный запрос
Но тем не менее он выводит ошибку
Таксь. Вот полный запрос
$ind = isset($_GET['ind']) ? intval($_GET['ind']) : null;
if ($ind !== null)
{
$result = mysql_query("SELECT * FROM `menu` WHERE id=".(int)$ind) or die(mysql_error());
if(!$result)
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_assoc($result);
}
else
{
$error = 'Упс! Нет такой странички.';
}
}
Но тем не менее он выводит ошибку
Ошибка -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 3
Спустя 1 минута, 27 секунд (28.03.2011 - 15:44) m4a1fox написал(а):
Invis1ble
Разобрался. Спасибо. Ошибка была в другом запросе. Извините, что мозг попарил Вам.
Разобрался. Спасибо. Ошибка была в другом запросе. Извините, что мозг попарил Вам.
Спустя 2 минуты, 4 секунды (28.03.2011 - 15:46) Invis1ble написал(а):
m4a1fox
Ну а я сразу тебе написал:
Ну а я сразу тебе написал:
Цитата |
Нет, это я спрашиваю, почему ты показываешь запрос не тот, в котором ошибка выдается =) |
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 8 минут, 2 секунды (28.03.2011 - 15:54) m4a1fox написал(а):
Invis1ble
Та да. Тупанул. Надо повнемательнее быть.
Та да. Тупанул. Надо повнемательнее быть.
Спустя 12 минут, 24 секунды (28.03.2011 - 16:07) inpost написал(а):
m4a1fox
Что в ошибке значит: at line 3, ответь прям тут!
Что в ошибке значит: at line 3, ответь прям тут!
Спустя 1 час, 47 минут, 28 секунд (28.03.2011 - 17:54) m4a1fox написал(а):
inpost
Что ошибка в запросе на выводе на 3 линии.
Что ошибка в запросе на выводе на 3 линии.
Спустя 2 минуты, 25 секунд (28.03.2011 - 17:57) m4a1fox написал(а):
inpost
Да я понимаю к чему вы клоните. Что в том запросе что я здесь выводил, не было 3 линии, поэтому нужно было сразу понять что это не этот запрос, и не в нем ошибка, а другой.
Да я понимаю к чему вы клоните. Что в том запросе что я здесь выводил, не было 3 линии, поэтому нужно было сразу понять что это не этот запрос, и не в нем ошибка, а другой.
Спустя 9 минут, 29 секунд (28.03.2011 - 18:06) Invis1ble написал(а):
совершенно верно
Спустя 12 минут, 20 секунд (28.03.2011 - 18:18) m4a1fox написал(а):
Так. Поехали дальше:) Как быть с числами - это понятно. Но как быть со строками?
Спустя 6 минут, 21 секунда (28.03.2011 - 18:25) m4a1fox написал(а):
Может регулярка?
Спустя 34 секунды (28.03.2011 - 18:25) Invis1ble написал(а):
Что значит "как быть" ? Вот так:
mysql_real_escape_string($value);
Спустя 7 минут, 31 секунда (28.03.2011 - 18:33) m4a1fox написал(а):
Invis1ble
Да точно... спасибо. Что-то сегодня туплю...:)
{
$error = 'Упс. Нет такой странички!';
}
[/php]
Попытаюсь объяснить вопрос. Как бы все просто. Проверяем, выбираем, если ничего не выбрано то условие
это условие должно выполнятся. Но не выполняется:(
Да точно... спасибо. Что-то сегодня туплю...:)
{
$error = 'Упс. Нет такой странички!';
}
[/php]
Попытаюсь объяснить вопрос. Как бы все просто. Проверяем, выбираем, если ничего не выбрано то условие
if (mysql_num_rows($result_author) > 0)не выполняется, значит
else
{
$error = 'Упс. Нет такой странички!';
}
это условие должно выполнятся. Но не выполняется:(
Спустя 4 минуты, 53 секунды (28.03.2011 - 18:38) Invis1ble написал(а):
Не понял, какой блок не выполняется? И могу тебя удивить, но: если не выполняется, значит условие не true
Значит выясняй, почему оно не true
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 16 минут, 15 секунд (28.03.2011 - 18:54) m4a1fox написал(а):
Invis1ble
Не не. Все нормально. Что-то комп тупанул. Я стирал часть с вопросом. В общем все нормально. Спасибо что помогли.
Не не. Все нормально. Что-то комп тупанул. Я стирал часть с вопросом. В общем все нормально. Спасибо что помогли.