Учение цитирует апострофы

0

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

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

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

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

Test\'ed user

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

Теги:
doctrine

2 ответа

2
Лучший ответ

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

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

  • 0
    Так просто. Не использовал сервер с таким включенным так долго, что я забыл об этом! СПАСИБО
1

Вы можете избежать чумы 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);
}

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

  • 1
    Будьте осторожны, это не сработает, если $ _REQUEST содержит массивы!
  • 0
    Хороший вопрос, Бен. Я обновил код, чтобы исправить это.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню