После установки сборки при входе в Magento Connect
открывается страница ввода логин/пароль. Ввожу их и появляется ошибка:
Warning: array_key_exists() expects parameter 2 to be array, null given in app/code/core/Mage/Captcha/Model/Observer.php on line 166
Ругается на строку
Warning: array_key_exists() expects parameter 2 to be array, null given in app/code/core/Mage/Captcha/Model/Observer.php on line 166
30.06.2014 12:17
Это известный дефект Magento Community Edition: «Warning: array_key_exists() expects parameter 2 to be array, null given in app/code/core/Mage/Captcha/Model/Observer.php on line 166».
Учитывая, что этому дефекту уже больше года, видимо, его уже устранили в свежих версиях Magento Community Edition.
У меня на Magento Community Edition 1.9.0.1 с последней версией Российской сборки Magento этот дефект не воспроизводится, другие версии не проверял, но раньше сам никогда с этим дефектом не сталкивался, видимо, он связан с какими-то редкими настройками сервера.
Учитывая, что этому дефекту уже больше года, видимо, его уже устранили в свежих версиях Magento Community Edition.
У меня на Magento Community Edition 1.9.0.1 с последней версией Российской сборки Magento этот дефект не воспроизводится, другие версии не проверял, но раньше сам никогда с этим дефектом не сталкивался, видимо, он связан с какими-то редкими настройками сервера.
30.06.2014 12:46
Сейчас посмотрел программный код: данный дефект действительно устранён в свежих версиях Magento Community Edition, причём не только в версии
1.9.0.1, а во всех версиях Magento Community Edition, начиная с версии 1.8.0.1.
Там строка 165 файла app/code/core/Mage/Captcha/Model/Observer.php стала такой:
то есть, в отличие от Magento Community Edition 1.7.0.2 и более ранних версий, при вызове Mage::app()->getRequest()->getPost в данной точке программы стал передаваться второй параметр array().
Это решает проблему.
Таким образом, устранить проблему можно любым из следующих способов:
Оба способа для устранения проблемы равноценны, потому что при обновлении Magento Community Edition до версии не ниже 1.8.0.1 данная строка всё равно заменится именно таким образом, который указан выше.
1.9.0.1, а во всех версиях Magento Community Edition, начиная с версии 1.8.0.1.
Там строка 165 файла app/code/core/Mage/Captcha/Model/Observer.php стала такой:
$loginParams = Mage::app()->getRequest()->getPost('login', array());
то есть, в отличие от Magento Community Edition 1.7.0.2 и более ранних версий, при вызове Mage::app()->getRequest()->getPost в данной точке программы стал передаваться второй параметр array().
Это решает проблему.
Таким образом, устранить проблему можно любым из следующих способов:
- заменить в данной точке программы строку
$loginParams = Mage::app()->getRequest()->getPost('login');
на строку
$loginParams = Mage::app()->getRequest()->getPost('login', array());
- обновить Magento Community Edition до версии не ниже 1.8.0.1
Оба способа для устранения проблемы равноценны, потому что при обновлении Magento Community Edition до версии не ниже 1.8.0.1 данная строка всё равно заменится именно таким образом, который указан выше.