Прочтите это и почему вы не должны использовать магические кавычки:
http://php.net/manual/en/security.magicquotes.disabling.php
Используйте один из примеров на этой странице и замените stripslashes
на addslashes
. Но да, ваше решение, вероятно, работает. Хотя было бы быстрее и менее навязчиво просто использовать $_GET = array_map("addslashes", $_GET);
один раз при запуске. Еще лучше было бы использовать mysql_real_escape_string
вместо addslashes
на них. (Но ваше соединение с базой данных должно быть уже установлено, чтобы это работало.)
Кроме того, я хотел бы рекомендовать вам спам: http://sourceforge.net/p/php7framework/wiki/input/ - потому что он позволяет постепенно переписывать ваше приложение для использования $_GET->q["fieldName"]
для (не очень безопасных) полей с магическими кавычками или просто $_POST->sql["fieldName"]
для (более безопасные) кодированные поля.
Вы даже можете использовать $_REQUEST->sql->always()
, чтобы включить фильтр по умолчанию для всех обычных $_REQUEST["fieldName"]
обращений. Хотя это может быть излишним для некоторых приложений.