Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибки magic_quotes

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
maroz89
Отправлено: 08 Июля, 2010 - 21:03:08
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




после вставки кода
CODE (htmlphp):
скопировать код в буфер обмена
  1.  require ("phpinc/function.php");
  2.        if (isset($date)){stripslashes_gpc($date);}
  3.     array_walk_recursive($_GET, 'stripslashes_gpc');
  4. }
  5.  


файл function.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. /*Убираем magick quotes*/
  3. function stripslashes_gpc(&$value)
  4.    {
  5.    $value = stripslashes($value);
  6.    $value = mysql_real_escape_string($value);
  7.    }
  8. ?>


Появились такие ошибки

Цитата:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in X:\home\phpblog\www\phpinc\function.php on line 6

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in X:\home\phpblog\www\phpinc\function.php on line 6

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in X:\home\phpblog\www\phpinc\function.php on line 6

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in X:\home\phpblog\www\phpinc\function.php on line 6

из этого я понял что нет доступа для некого пользователя ODBC.. но такого пользователя в правах доступа к Бд вообще не существует... В чем в тут ошибка.. раньше этот код использовал работал нормально
 
 Top
mSec
Отправлено: 08 Июля, 2010 - 21:26:56
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




пытается обработать строку, используя кодировку твоей базы данных.
Я так понимаю, ты не приконнектился к базе и поэтому он пытается подключиться к localhost под логином ODBC без пароля (это вроде стандартные параметры коннекта в PHP).
Попробуй использовать mysql_escape_string() или подключись к базе.
 
 Top
maroz89
Отправлено: 08 Июля, 2010 - 21:52:58
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Ха-ха Спасибо Радость Я не заметил, точно... не подключился к базе! Хорошо
 
 Top
JustUserR
Отправлено: 09 Июля, 2010 - 02:51:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




maroz89 пишет:
Array_walk_recursive($_GET, 'stripslashes_gpc');
Ваша функция для переэкранировки данных после применения опции magic_quotes скорее всего не будет работать полностью как вы предполагали - поскольку во-первых данные из GET/POST-запросов приходят в некэранированном виде а вы определяя наличие опции magic_quotes сначала снимаете один уровень экранирования а потом практически его добавляете - во-вторых полезность функции mysql_real_escape_string состоит именно в экранировании с учетом текущего ресурса подключния к БД для последующих SQL-запросов к ней с учетом кодировки соединения - оданако данные строк в PHP-скрипте могут иметь другую кодировку и экранировать их таким образом вовсе не следует


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
maroz89
Отправлено: 09 Июля, 2010 - 17:51:59
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




хм.. тогда подскажите как подобным образом решить такую задачу:
Я незнаю включены ли на сервере магические кавычки, мне нужно это определить, если они включены, то нужно обрезать их экранирование и использовать вместо этого mysql_real_escape_string, а если они выключены, то просто обработать mysql_real_escape_string
 
 Top
JustUserR
Отправлено: 10 Июля, 2010 - 03:15:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




maroz89 пишет:
Хм.. тогда подскажите как подобным образом решить такую задачу:
Я незнаю включены ли на сервере магические кавычки, мне нужно это определить, если они включены, то нужно обрезать их экранирование и использовать вместо этого mysql_real_escape_string, а если они выключены, то просто обработать mysql_real_escape_string
В принципе все остается почти также как было в вашем решении - но либо callback-функция stripslashes_gpc заменяется на простой вызов stpipshashes для снятия одного уровня экранирования в случае включенной опции magic_quotes и потом перед созданием SQL-запросов функция mysql_real_escape_string применяется вручную - либо callback-функция обработки остается у вас в точности какая же как и есть но к if-условию добавляется else-секция которая выполняет экранирование mysql_real_escape_string в случае выключенных magic_quotes
Если дословно использовать PHP-код приведенный вами то он работает несимметрично - поскольку в случае выключенных magic_quotes экранирование mysql_real_escape_string не будет произведено вообще


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
maroz89
Отправлено: 10 Июля, 2010 - 16:01:26
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




JustUserR пишет:
Если дословно использовать PHP-код приведенный вами то он работает несимметрично - поскольку в случае выключенных magic_quotes экранирование mysql_real_escape_string не будет произведено вообще

да действительно, это мой недосмотр... Спасибо!
 
 Top
JustUserR
Отправлено: 12 Июля, 2010 - 15:31:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




maroz89 пишет:
Да действительно, это мой недосмотр... Спасибо!
Пожалуйста! В целях диагностики можно осуществлять вывод данных которые подлежат автоматического экранирование в браузер - и за счет просмотра сгенерированного исходного HTML-кода можно оценить правильность работы соответствующих функций


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB