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 :: Лишнее экраниваное кавычек

 PHP.SU

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


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

> Без описания
event
Отправлено: 01 Мая, 2015 - 00:56:10
Post Id


Частый посетитель


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


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




Привет.
Перенес свой сайт с одного хостинга на другой. Сайт самописный на PHP + MySQL.

Появилась проблема, когда заполняю какую-то форму, а потом записываю в базу данных, делается лишнее экранирование кавычек.

Например в input поле пишу - "Какой-то" пример
В результате в базу записывается - \"Какой-то\" пример

Как поправить?

Заранее спасибо.
 
 Top
Мелкий Супермодератор
Отправлено: 01 Мая, 2015 - 01:03:07
Post Id



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


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


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




Выключите магические кавычки. А лучше обновите PHP. Уже в устаревшем 5.4 их выпилили.


-----
PostgreSQL DBA
 
 Top
resik
Отправлено: 01 Мая, 2015 - 01:14:03
Post Id



Новичок


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


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




Через .htaccess
CODE (text):
скопировать код в буфер обмена
  1.  
  2. php_flag magic_quotes_gpc off
  3. php_flag magic_quotes_runtime off
  4. php_flag magic_quotes_sybase off
  5.  


или же объявить этот класс перед использованием данных $_POST/$_GET в зависимости от метода формы
PHP:
скопировать код в буфер обмена
  1.  
  2. class FixMagicQuotes {
  3.        
  4.         public function __construct() {
  5.                 if(get_magic_quotes_gpc()) {
  6.                         $_GET     = $this->stripslashes_deep($_GET);
  7.                         $_POST    = $this->stripslashes_deep($_POST);
  8.                         $_COOKIE  = $this->stripslashes_deep($_COOKIE);
  9.                         $_REQUEST = $this->stripslashes_deep($_REQUEST);
  10.                        
  11.                         if(!empty($_SESSION))
  12.                                 $_SESSION = $this->stripslashes_deep($_SESSION);
  13.                        
  14.                         $_SERVER  = $this->stripslashes_deep($_SERVER);
  15.                         $_FILES   = $this->stripslashes_deep($_FILES);
  16.                         $_ENV     = $this->stripslashes_deep($_ENV);
  17.                 }
  18.         }
  19.        
  20.         function stripslashes_deep($mixed) {
  21.                 if(is_array($mixed)) {
  22.                         $mixed = array_map(array($this, 'stripslashes_deep'), $mixed);
  23.                 } elseif(!empty($mixed) && is_string($mixed)) {
  24.                         $mixed = stripslashes($mixed);
  25.                 }
  26.                 return $mixed;
  27.         }
  28. }
  29.  
  30. new FixMagicQuotes();
  31.  


такой еще вариант
PHP:
скопировать код в буфер обмена
  1.  
  2. function remove_magic_quotes(&$array) {
  3.     foreach (array_keys($array) as $key) {
  4.         $sk = stripslashes($key);
  5.         if($sk != $key){
  6.             $array[$sk] = $array[$key];
  7.             unset($array[$key]);
  8.             $key = $sk;
  9.         }
  10.  
  11.         if (is_array($array[$key])) {
  12.             remove_magic_quotes($array[$key]);
  13.         }else {
  14.             $array[$key] = stripslashes($array[$key]);
  15.         }
  16.     }
  17. }
  18.  
  19.     if (!empty($_GET))    remove_magic_quotes($_GET);
  20.     if (!empty($_POST))   remove_magic_quotes($_POST);
  21.     if (!empty($_COOKIE)) remove_magic_quotes($_COOKIE);
  22.     if (!empty($_REQUEST)) remove_magic_quotes($_REQUEST);
  23.     @ini_set('magic_quotes_gpc', 0);
  24. }
  25. if(function_exists('set_magic_quotes_runtime')) @set_magic_quotes_runtime(0);
  26. @ini_set('magic_quotes_sybase',0);
  27.  

(Отредактировано автором: 01 Мая, 2015 - 01:20:32)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB