Я знаю, что это звучит очень часто и настолько тривиально, но у меня здесь есть проблема. У меня есть веб-сайт с 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-страницу, у которой есть запрос на вставку / обновление 🙂