ДОбого здрвия всем появляется такая ошибка The first argument should be either a string or an integer in /home/***/domains/***/public_html/index.php on line 138 как можно решить ?
В любом случае сначала нужно смотреть, что в том файле в строке 138. Возможно, это поможет при поиске в яндексе решения этой проблемы. Если готового решения не нашли - выложить сюда то, что там находится. Также нужно пробовать самому решить. Перевод ошибки гугл транслейт - "Первый аргумент должен быть строкой или целым числом". Т.е. надо посмотреть, что там в 138 строке и дальше танцевать от этого. Ещё советы. Как правило, если не знаешь как сделать - надо отключить то, что может вызывать проблему. Например, поотключать модули вкмода, взять из бэкапа рабочий на тот момент index.php и сравнить с текущим, особенно рядом с этой строчкой. Вспомнить, что делали до возникновения ошибки. Может правили чего, может как раз этот index.php Короче, всё отключаем, если проблема устранена - включаем по частям.
дело в том, что сначала магазин развернул на денвере, а потом только переносил на хост сразу же после утановки вылезать начала эта ошибка. Единственное что сменилось, так это Register Globals относительно 138 строки, то там информация связанная с языками (в то время как язык только 1, и то, шел в комплекте к опенкарту) просто нашел несколько сообщений с такой же ошибкой, где говорили что решать именно нужно проблему с Register Globals Код: 138. if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) { 139. $code = $session->data['language']; 140. } elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages)) { 141. $code = $request->cookie['language']; 142. } else { 143. $detect = ''; и пруф на решение с другого форума но решение не помогло , по крайней мере мне далее....потому как у меня дублируется магазин и на денвере, то просмотрел код и сравнил на расхождения....так вот, код идентичен, но на денвере все ок, а на хосте лезет ошибка
Во-первых, значение директивы Register_Globals начиная с PHP 4.2 по умолчани и так off, а в PHP 5.4 её совсем удалили. Сомневаюсь, что у вас на хостинге версия ниже 5.4, а если всё же ниже, то либо переключитесь хотя бы на 5.4, либо меняйте хостинг. А во-вторых, проверьте, что у вас в $session->data['language']. Там явно что-то не то. А разница с Денвером в том, что вы смениил окружение.
ок - проверю --- Добавлено, 26 янв 2016 --- это home.tpl полностью и header.tpl а как можно найти $content_banner из home.tpl и $content_block из header? как я понял - проблема в том, что невозможно определить переменную значит надо найти фрагмент где эта переменная задавалась следовательно, можно отыскать этот блок в работающем магазине и впихнуть сюда ....дело остается за 1 - найти эти блоки кода, в которых задаются переменные
Переменные задаются в одноимённом с шаблоном контроллере. В контроллере они выглядят так: $this->data['var_name'] - в ветке 1.5.x $data['var_name'] - в ветке 2.x А как решили проблему с ошибкой из первого поста?
перешел на базы php, почистил кэш, выключил глобал на хосте, выключил глобал в htaccess и в php.ini - все стало ок вроде перебрал немножко модули, избавился от некоторых - все стало работать хорошо....к сожалению шаблон оказался не русифицированным....сейчас вот перевел почти весь только вот осталась пара проблем но для этого отдельная тема