2009-11-17 3 views
3

В PHP, $ _POST добавьте косые черты перед кавычкой автоматически, так зачем беспокоиться о применении mysql_real_escape_string()? Например, когда я вводил 'rrr в поле ввода, и я получаю \'rrr, когда я его эхо.

+0

Когда я применяю mysql_real_escape_string(), я получаю \\\ 'e, когда я возвращаю результат. – Steven

ответ

11

Поскольку это происходит только тогда, когда MacigQuotes включен в вашем php, что, насколько я знаю, сейчас довольно редко. Кроме того, mysql_real_escape_string также избегает других символов, связанных с MySQL.

Отъезд http://php.net/manual/en/security.magicquotes.php для получения дополнительной информации о магических котировках.

Как вы можете видеть, уже есть предупреждение устаревания для этой директивы, так что вы должны проверить конфигурацию сервера в любом случае ^^

Edit: Для того, чтобы отключить волшебные кавычки, поиск в папке XAMPP для php.ini , а также добавить или изменить, если присутствуют следующие директивы:

 
; Magic quotes 
; 

; Magic quotes for incoming GET/POST/Cookie data. 
magic_quotes_gpc = Off 

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. 
magic_quotes_runtime = Off 

; Use Sybase-style magic quotes (escape ' with '' instead of \'). 
magic_quotes_sybase = Off 
+0

Как отключить MagicQuotes в моей конфигурации PHP? Я использую xampp. – Steven

+0

@Steven - Откройте «c: \ xampp \ apache \ bin \ php.ini», найдите строку «magic_quotes_gpc = On», измените «Вкл.» На «Выкл.», Сохраните и перезапустите Apache с помощью панели управления XAMPP , – MiffTheFox

6
  1. mysql_real_escape_string выходит за рамки отдельных кавычек, потому что есть другие символы, которые могут вызвать проблемы с вводом.
  2. PHP только добавляет косую черту в посланном вход, если magic_quotes включен, который считается плохой практикой (потому что это приводит к лени и не использовать такие вещи, как real_escape_string!)
3

Волшебное цитирует was deprecated as of PHP 5.3.0 и устарела, так как в PHP 6.0.

Редактировать: Таким образом, на автоматические слэши нельзя полагаться, потому что они устарели большинством установок PHP и вскоре не будут работать вообще.

+0

Это не ответит на вопрос, не так ли? – fresskoma

+1

Я думал, что связь понятна. – wallyk

+0

Конечно, это так, но imho это должен был быть комментарий к моему или ответу Кьярана, поскольку мы оба упоминали magic_quotes уже. – fresskoma

Смежные вопросы