Дырка на значок '

Статус
В этой теме нельзя размещать новые ответы.

Ќacnєp

Постоялец
Регистрация
14 Окт 2006
Сообщения
103
Реакции
21
Люди у меня в скрипте при вводе знака ' выдает ошибку
mysql_num_rows(:( supplied argument is not a valid MySQL result resource in
/www/httpdocs/
причем такое везде и в поиске и в ответе, как исправить кто знает
 
везде при проверке GET данных обрабатывать через функцию addslashes();
 
открой файл на который ссылается ошибка, там указан номер строки и имя файла. чуть выше этой строки должна быть mysql_query строка и в ней в текст вставляются переменные. так вот эти переменные нада заключить в функции mysql_escape_string()

но вобще это нада все скрипты просмотреть и экранировать все в них.

как вариант можешь в хтаксес добавить такую строку

php_flag magic_quotes_gpc on

это не очень хорошо, но если твой сайт будет работать - то на какоето вермя поможет. и если поможет то добавь вторую строку. в хтакссес

display_errors = Off

ты запретишь вывод ошибок на сайте. сложнее будет похакать тебя :)
 
На, вот тут подробно всё описано

Для просмотра ссылки Войди или Зарегистрируйся

лечится многими способами
вот два самых простых:

Первый
$HTTP_GET_VARS[id]=addslashes($HTTP_GET_VARS[id]); //добавляем в переменную слеши
$new=mysql_query("Select * from `dle_post` where id='$HTTP_GET_VARS[id]' limit 1;"); //даём запрос в мускул.

Второй:
$query="Select * from `dle_post` where id='$HTTP_GET_VARS[id]' limit 1;"; // создаём строку запроса
$query=mysql_escape_string($query);
либо так:
$query=addslashes($query);

$new=mysql_query($query); // Даём запрос в мускул


PS ' это не значок, а символ одинарных кавычек
 
как вариант можешь в хтаксес добавить такую строку

php_flag magic_quotes_gpc on

это не очень хорошо

А почему это не очень хорошо?
Я всегда в настройках php включал magic_quotes_gpc .. Ничего плохого не замечал ...
 
А почему это не очень хорошо?
Я всегда в настройках php включал magic_quotes_gpc .. Ничего плохого не замечал ...
проблем очень много + они не всегда спасают. часто можно было передать в различных кодировках и прочих хаках ' и все прходило на ура. потом не все переменные экранировались, далеко не всегда он правильно экранировал, вобщем по заверению авторов все это приводило к неоднозначности и раслабляла пышных программеров, из за этого по просторам инета образовалось куча дырявого софта. на сколько я знаю в версии 5.3 и 6 его уже не будет. всю проверку входящих переменных должны делать сами кодеры.
 
  • Заблокирован
  • #9
как вариант проще немного проще будет сделать так:

$переменная = preg_replace("/'/", "&apos", $переменная);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху