Magento: предупреждение в PHP в стандартном контроллере Adminhtml - PullRequest
2 голосов
/ 01 ноября 2011

При отладке Magento я обнаружил это странное предупреждение.

Предупреждение: mysql_real_escape_string () [function.mysql-real-escape-string]: доступ запрещен для пользователя 'apache' @ 'localhost' (используется пароль: НЕТ) в / mnt / www / t2 / app / code / core /Mage/Adminhtml/Controller/Action.php в строке 508

В функции checkforSqlInjectionInAction ()

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

Это предупреждение есть в checkforSqlInjectionInAction ().

1 Ответ

3 голосов
/ 01 ноября 2011

Добро пожаловать в удивительный мир отладки чужого кода Magento.Базовый код Magento не содержит метод с именем checkforSqlInjectionInAction, поэтому вы уже имеете дело с взломом ядра, созданным чужим кодом.

Что касается вашей конкретной ошибки, <a href="http://php.net/manual/en/function.mysql-real-escape-string.php" rel="nofollow">mysql_real_escape_string</a> спросит базу данных MySQL, какова правильная последовательность escape-символов.Однако эта функция была разработана для работы с оригинальным модулем PHP MySQL

Соединение MySQL.Если идентификатор ссылки не указан, предполагается последняя ссылка, открытая mysql_connect ().Если такая ссылка не найдена, она попытается создать такую, как если бы mysql_connect () была вызвана без аргументов.Если соединение не найдено или не установлено, генерируется ошибка уровня E_WARNING.

Поскольку Magento не использует mysql_connect, PHP пытается создать соединение, используя имя пользователя по умолчанию 'apache'@'localhost' без пароля.

Вы должны создавать свои операторы SQL, используя либо сырой PDO, либо ресурсы подключения Magento для чтения / записи.Эти объекты позволяют вам создавать запросы со связанными параметрами, где нет необходимости вручную экранировать строку базы данных.

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