Учение цитирует апострофы - PullRequest
0 голосов
/ 30 ноября 2009

Я использую Doctrine ORM для php и Zend MVC. У меня есть база данных MySQL. Когда я вставляю в базу данных, это экранирование кавычек. Другими словами, когда я ввожу

<input name="customer_name" value="Test'ed user"> ...

в мою форму, и назначить объект учения и сохранить.

Когда я смотрю на базу данных через командную строку mysql, я получаю

Test\'ed user

Есть ли способ отключить это или мне нужно вызывать stripslashes() для каждой переменной?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2009

Проверьте, включен ли magic_quotes_gpc, просматривая php.ini или запустив get_magic_quotes_gpc().

Если у вас есть доступ к php.ini, отключите его. В противном случае вам нужно будет удалить косые черты в ваших скриптах, используя stripslashes().

1 голос
/ 30 ноября 2009

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

if(get_magic_quotes_gpc()) {
    if(!function_exists('stripishlashes_all')) {
        function stripslashes_all(&$data) {
            foreach($data as &$_value) {
                if(is_array($_value)) {
                    stripslashes_all($_value);
                }
                else {
                    $_value = stripslashes($_value);
                }
            }
        }
    }
    stripslashes_all($_REQUEST);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...