друзья, помогите! на сайте такая ошибка, в чем проблема? Parse error: syntax error, unexpected '[' in /docs/components/com_content/content.php on line 11 код такой Код (PHP): <?php /** * @package Joomla.Site * @subpackage com_content * * @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; if(stripos(JFactory::getApplication()->input->getVar("list")[select],"elect")) die; require_once JPATH_COMPONENT . '/helpers/route.php'; require_once JPATH_COMPONENT . '/helpers/query.php'; $controller = JControllerLegacy::getInstance('Content'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); дас ист фантастишь! ошибки стало лучше видно. помогает волшебный [code=php] — модераторъ
сделал так теперь так.. Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /docs/components/com_content/content.php on line 11
ты правда двоеточие в кавычки взял? нука покажи как сейчас выглядит код! и не забудь оформить его в [code=php]...[/code] Добавлено спустя 4 минуты 36 секунд: кстати, вот такой приём Код (PHP): getVar("list")['select'] работает только в свежих версиях PHP. если у тебя на хостинге какое-нибудь древнее говно, то здесь будет ошибка.
без изменений Parse error: syntax error, unexpected '[' in /docs/components/com_content/content.php on line 11
ты правда двоеточие в кавычки взял? нука покажи как сейчас выглядит код! и не забудь оформить его в [code=php]...[/code] Код (Text): <?php /** * @package Joomla.Site * @subpackage com_content * * @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; if(stripos(JFactory':':getApplication()->input->getVar("list")['select'],"elect")) die; require_once JPATH_COMPONENT . '/helpers/route.php'; require_once JPATH_COMPONENT . '/helpers/query.php'; $controller = JControllerLegacy::getInstance('Content'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect();
Гы.... kostyarin, если php < 5.4, то getVar("list")['select'] работать не будет, тогда такой синтаксис не разрешали. Двоеточие брать в апострофы тут нельзя ни в коем случае, artoodetoo под столом наверное
тогда эту запись придется изменить чуток на другой Код (PHP): JFactory::getApplication()->input->getVar("list")['select'] что-то типа Код (PHP): $sSelect = JFactory::getApplication()->input->getVar("list"); if(stripos($sSelect,"elect")) die; (
сделал [code <?php /** * @package Joomla.Site * @subpackage com_content * * @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $sSelect = JFactory::getApplication()->input->getVar("list")['select']; if(stripos($sSelect,"elect")) die; require_once JPATH_COMPONENT . '/helpers/route.php'; require_once JPATH_COMPONENT . '/helpers/query.php'; $controller = JControllerLegacy::getInstance('Content'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); ][/code] без изменений версия 5.3.13
я херово скопировал, ссории.. Код (PHP): $sSelect = JFactory::getApplication()->input->getVar("list"); if(stripos($sSelect['select'],"elect")) die;
и что 6лять за 'elect', костыль против нахождения 'select' с 0 позиции? так будет правильнее: Код (PHP): $tmp = JFactory::getApplication()->input->getVar("list"); if (stripos($tmp['select'], 'elect') !== false) { die(); }
ппц! возвращайся, там теперь нет сообщения об ошибке. но ошибка там есть ))) блин, хорошо быть таким простым и наивным.
а код точно именно этот вставил Код (PHP): $sSelect = JFactory::getApplication()->input->getVar("list"); if(stripos($sSelect['select'],"elect")) die; ?? (
НЕТ, ВОТ ЭТОТ Код (Text): $sSelect = JFactory::getApplication()->input->getVar("list"); if(stripos($sSelect,"elect")) die;
этот будет правильнее Код (PHP): $sSelect = JFactory::getApplication()->input->getVar("list"); if(stripos($sSelect['select'],"elect")) die; так как, в предыдущем не было обращения к индексу массива $sSelect['select']. (;
Пока р2д2 не выбрался из под стола, чуток позанудствую. Код (PHP): if(stripos($sSelect,"elect")) die; Это эпический костыль! stripos возвращает позицию искомой строки, а т.к. отсчет ведется с 0, то выражение вроде этого не сработает: Код (PHP): if(stripos('abcd', 'abc')) {...} Потому необходимо явно проверять на false, а за любые остальные варианты ломать руки до выпрямления )