Мой программист не считает нужным проверять существование в массиве элемента перед обращением к нему, что мне теперь делать?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
  • Тема закрыта
#1 Андрей Севидов
  • Группа: Клиент
  • Сообщений: 7
  • Регистрация: 20.02.2013

20.05.2014 16:29

перед обновлением отключили режим компиляции затем выполнили обновления согласно инструкции
но возникает предупреждение NOTICE
отключить его не получается.
И сайт не работает - выводится это предупреждение и на клиентской части.


Notice: Undefined index: uid in /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/design/frontend/galaeva_new/default/template/page/home.phtml on line 33

#0 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/design/frontend/galaeva_new/default/template/page/home.phtml(33): mageCoreErrorHandler(8, 'Undefined index...', '/var/www/all4gi...', 33, Array)
#1 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Block/Template.php(241): include('/var/www/all4gi...')
#2 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/galaev...')
#3 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#4 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml()
#5 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
#6 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
#7 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Cms/Helper/Page.php(137): Mage_Core_Controller_Varien_Action->renderLayout()
#8 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'galaeva_home')
#9 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Cms/controllers/IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'galaeva_home')
#10 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Cms_IndexController->indexAction()
#11 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#12 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#14 /var/www/all4gift.ru/data/www/all4gift.ru/magento/app/Mage.php(685): Mage_Core_Model_App->run(Array)
#15 /var/www/all4gift.ru/data/www/all4gift.ru/magento/index.php(88): Mage::run('', 'store')
#16 {main}

help

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.05.2014 16:38

Диагностическое соообщение «Notice: Undefined index: uid» говорит о том, что программист (в данном случае — разработчик оформительской темы: видимо, некто «Галаева» или кто-то там потом из добаратывавших оформительскую тему) имеет свой взгляд на язык программирования PHP и не считает нужным проверять наличие в массиве элемента перед обращением к нему.

В данном случае, в проблемной точке (app/design/frontend/galaeva_new/default/template/page/home.phtml on line 33) мы видим такой программный код:
$value = $_GET['uid']; //берем кусок ulr mastertarget


Программист не счёл нужным проверить наличие в массиве $_GET ключа «uid» перед обращением к нему, а вместо этого сделал свою работу быстро и неряшливо.
Подобный сбой мог не проявляться ранее по массе причин, начиная от настроек интерпретатора PHP (интерпретатор PHP мог быть настроен таким образом, что он не сообщал о подобных сбоях, но программа, разумеется, всё равно данные из ниоткуда взять не могла и правильно не работала) и заканчивая тем, что выполнение программы шло по другой ветке.

#3 Андрей Севидов
  • Группа: Клиент
  • Сообщений: 7
  • Регистрация: 20.02.2013

20.05.2014 17:01

Благодарствую.

Так все-таки где отключить NOTICE?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

20.05.2014 17:06

Несколько вопросов в одну тему пихать запрещено.
Приходится искусственно закрывать темы, чтобы они не превращались в помойку, когда с одного вопроса перескакивают на другой и одну проблему маскируют другой.
В данном случае разумнее решать проблему на организационном уровне: учить своих программистов, контролировать качество их работы, заставлять их исправлять свои ошибки, чем искусственно маскировать следы их некачественной работы.

Поделиться темой: