Зачем использовать mySQL_REAL_ESCAPE_STRING (), поскольку $ _post добавляет черты перед автоматической цитатой?

StackOverflow https://stackoverflow.com/questions/1747677

Вопрос

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

Это было полезно?

Решение

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

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

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

РЕДАКТИРОВАТЬ: чтобы отключить магические цитаты, поиск в папке 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

Другие советы

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

Magic quotes was deprecated as of PHP 5.3.0 and is obsolete as of PHP 6.0.

Edit: So the auto slashes can't be relied on because they are deprecated by most PHP installations, and soon will not work at all.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top