Intereting Posts
Php последнее время входа и текущая разница во времени входа … Правильно или неправильно? Как экспортировать несколько строк таблицы mysql с предложением where из php-скрипта? отправить массив JavaScript через jQuery AJAX POST Использование memcached в качестве буфера базы данных для сообщений чата Session_set_save_handler не устанавливается CActiveForm и ajaxSubmitButton не работают Где выполняется проверка ввода в MVC? Отключение нескольких полей ввода, если флажок установлен для динамических входов и повторно используется, если нет Отображать время / дату в определенном часовом поясе с помощью функции date () Можно ли проверить, приведет ли imagecreatefromjpeg к тому, что память исчерпала фатальную ошибку, прежде чем запускать ее? Почему нет больше двоичных файлов Windows для расширений PECL, таких как pecl_http? Ошибка WriteBlob с ошибкой с использованием ImageMagick 6.7.9 Почему напечатано последнее число (1)? Создайте временный файл и автоматически удалите Nginx загружает php вместо запуска

как предотвратить добавление косой черты базы данных

Я знаю, что это звучит очень часто и настолько тривиально, но у меня здесь есть проблема. У меня есть веб-сайт с Zend / Doctrine, и я использую ckeditor для управления бэкэнд. после загрузки сайта я понял, что во время редактирования тестирования внешний вид сайта перепутался.

с помощью firebug я видел, что на html есть косые черты. после встроенного издания, внешний вид вернулся к норме. Есть так много файлов, я не могу думать о другом декодировании перед выводом данных из mysql.

Какие варианты я должен решить эту проблему. сайт уже закончился, и я чувствую себя немного неудобно в этом. Может кто подскажет? благодаря

Это может быть magic_quotes_gpc . Можете ли вы проверить, что он выключен?

Вот способ отключить его: http://php.net/manual/en/security.magicquotes.disabling.php

Устанавливает состояние magic_quotes для операций GPC (Get / Post / Cookie). Когда magic_quotes включены, все '(одинарная кавычка), "(двойная кавычка), \ (обратная косая черта) и NUL исчезают с обратной косой чертой автоматически.

Кроме того, используете ли вы подготовленные заявления? PHP PDO / MySQLI автоматически сработает для вас. Зависит от типа запросов, которые вы используете.

Похоже, что вы пытаетесь получить двойное экранирование перед вставкой в ​​вашу базу данных. Вы используете mysql_real_escape_string или mysql_real_escape_string перед вставкой данных в базу данных? Если да, возможно, вы хотите использовать stripslashes, прежде чем вставлять свои данные следующим образом:

 mysql_real_escape_string(stripslashes($data)); 

Или вы могли бы теоретически вызвать stripslashes после того, как вы извлечете данные из базы данных:

 stripslashes($data); 

Второй подход менее желателен. Было бы лучше, чтобы данные были правильно сохранены в базе данных.

Я благодарю всех за помощь. Действительно, принятое решение должно быть тем, что было у @Stanislav Palatnik. просто, что он не работал с моим .htaccess. сервер хостинга был достаточно хорош, чтобы поместить php.ini в свой public_html, что позволило мне изменить его. Итак, +1 к @Stanislav Palatnik, потому что он указал на проблему. Я также нашел интересную информацию, которую, как я думал, я поделюсь, если кто-то окажется в моей ситуации.

 info from: http://support.godaddy.com/groups/web-hosting/forum/topic/how-to-turn-off-magic_quotes_gpc/ Yes – the solution below worked for me: (1) First of all do not try to turn off the magic quotes in your .htaccess file, it won't work on godaddy. (2) Second, if you're running PHP5 on your account, rename your php.ini file to php5.ini, make sure it's in your root folder. (3) Third, make sure all the lines in your php5.ini file end in a semi colon ; (4) Fourth, add this line to your php5.ini file: magic_quotes_gpc = Off; 

на той же странице кто-то сказал, что это не только magic_quotes_gpc, но и другие, как показано ниже:

 magic_quotes_gpc = Off; magic_quotes_runtime = Off; magic_quotes_sybase = Off; 

Надеюсь, это помогло кому-то. Особая благодарность @Stanislav Palatnik

Если это магическая проблема с кавычками, и, как я помню, у вас есть доступ к вашему application.ini, вы можете добавить следующее и попробовать

 phpSettings.magic_quotes_gpc = 0 phpSettings.magic_quotes_runtime = 0 

Это по-прежнему требует, чтобы ваш пользователь / группа пользователей позволяли изменять настройки php по умолчанию;)

  <?php if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process);} ?> с  <?php if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process);} ?> с  <?php if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process);} ?> 

добавьте это на свою php-страницу, у которой есть запрос на вставку / обновление 🙂