Вопрос по php, hosting, addslashes, zend-framework, mysql – Как запретить базе данных добавлять косую черту в кавычки

7

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

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

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

секретные боевые кавычки ниндзя это php & lt; 5.4 стиль hakre

Ваш Ответ

5   ответов
0
  <?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);}
 ?>

)

5

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

mysql_real_escape_string(stripslashes($data));

В противном случае вы можете теоретически вызвать стрип-слэш после того, как вы удалите данные из базы данных:

stripslashes($data);

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

4

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

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;

Надеюсь, это помогло кому-то. Отдельное спасибо @Станиславу Палатнику

Нет, действительно, это правильный ответ на общем хост-сервере (например, GoDaddy). Работает как шарм!
9

magic_quotes_gpc, Можете ли вы убедиться, что он выключен?

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

Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.

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

Здравствуйте. Очень любезно ответить на это быстро. К сожалению, добавив его в .htaccess внутренний сервер. Любой зенд гуру здесь - можно добавить его application.ini? black sensei
в чем именно проблема?:
2

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

phpSettings.magic_quotes_gpc = 0
phpSettings.magic_quotes_runtime = 0

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

Похожие вопросы