Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ошибка


BorisK

Recommended Posts

Всем добрый день. Подскажите, в чём может быть проблема. На домене пропадает сайт и висит ошибка, то же самое в админке, при любом действии с модулем seo pro. Появилось после работы программиста и пропали отзывы на сайте.

В 62 строке на которую ссылается ошибка имелся код: <?php $occms_version='5.0'; $file = DIR_SYSTEM . 'library/front_loader.php'; $this->registry->set('admin_work', true); if (file_exists($file)) {include_once($file);} $occms_version='5.0'; ?>

 

 

 

 

 

Parse error: syntax error, unexpected/home.php on line 424

 

Parse error: syntax error, unexpected/maintenance.php on line 62

Parse error: syntax error, unexpected

Надіслати
Поділитися на інших сайтах


Прежде всего надо сказать, что эта строка кода довольно гавнокодистая.

 

А второе - почему вы обрезали тексты ошибок? Вы оттуда удалили самое важное как раз.

Надіслати
Поділитися на інших сайтах


..

 

А второе - почему вы обрезали тексты ошибок? Вы оттуда удалили самое важное как раз.

И чем же она такая (строка кода)!?

Вот просто интересно, когда вы делаете такие громогласные заявления, не зная сути и в про самый обычный код с маркером начала и конца кода

Надіслати
Поділитися на інших сайтах

Всем добрый день....

 

Да вы модуль пытались купить (сегодня, но liqpay не принял платеж)

Так вы решили на варезе скачать и поставить ?

Отсюда и ошибка

Вы устанавливаете ВАРЕЗНЫЙ модуль

Надіслати
Поділитися на інших сайтах

И чем же она такая (строка кода)!?

Вот просто интересно, когда вы делаете такие громогласные заявления, не зная сути и в про самый обычный код с маркером начала и конца кода

 

Если б вы процитировали ту фразу из моего поста, на которую отвечаете, было бы проще понять, что вы говорите :)

 

А по коду: начнём с этого "маркера" - смешно тут вспоминать о DRY, ибо он не о таких глупостях, но единственный смысл такого дублирования я могу предположить только в том, что с этой переменной происходит что-то внутри файла, который инклюдится, а её значение нужно ещё где-то дальше по коду текущего файла.

 

И тут есть сразу два замечания:

1. Если с переменной что-то происходит внутри файла, то и восстановления её значения должно быть завёрнуто в тоже условие, которое подключает файл, иначе получается, что переменная устанавливается дважды одним значением независимо от того, использовалась ли она.

2. Но более важно то, что так вообще не делается! Если значение переменной нужно модифицировать в каком-то локальном скоупе, а затем продолжить использовать оригинальное значение в глобальном скоупе, то в локальном скоупе нужно скопировать значение в локальную переменную и делать с ней что угодно.

 

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

 

Следующий пункт: судя по названиям файлов - это контроллеры. Дополнять код контроллеров вставками с php тегами - это уже само по себе, как минимум некрасиво (и нарушает стиль кодинга в ОК), но если эта вставка не в конце файла (а в конце файла нет смысла восстанавливать значение переменной), то эта вставка ещё и режет код контроллера на куски.

 

И напоследок: прямой инклюд файлов в контроллерах противоречит и архитектуре ОК и современным принципам кодинга в целом.

  • +1 2
Надіслати
Поділитися на інших сайтах


...

 

И напоследок: прямой инклюд файлов в контроллерах противоречит и архитектуре ОК и современным принципам кодинга в целом.

Это шутка такая была, я так понял

Поищите поиском "include_once" в файлах opencart хотя бы для начала

И вы еще наверно никогда не сталкивались у пользователей когда у них в настройках ftp клиента стоит очистка комментариев в коде (изменение файлов css, html, php и т п ). Я сталкивался и часто

Написали полный бред, даже комментировать не буду

  • +1 1
Надіслати
Поділитися на інших сайтах

Поищите поиском "include_once" в файлах opencart хотя бы для начала

 

Поискал:

https://github.com/opencart/opencart/search?utf8=%E2%9C%93&q=include_once

 

Это как-то противоречит моим словам?

 

 

Написали полный бред, даже комментировать не буду

 

Действительно, что комментировать, если уже на include_once зафейлились.

Надіслати
Поділитися на інших сайтах


Dotrox не стоит!!!

Такой кол... т.е. о коментах мы ничего не знаем...То что эти две строки - маркеры - я давно понял.

Но !!! кому!! кроме программеров нужно в это влазить... Работает? И... БЕЗ изменения системных файлов!!!!! Какой нах ocmod (vqmod)

Марк!!! ... Что есть, то есть.. не утруждайтесь!!!

Надіслати
Поділитися на інших сайтах

 

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

 

Следующий пункт: судя по названиям файлов - это контроллеры. Дополнять код контроллеров вставками с php тегами - это уже само по себе, как минимум некрасиво (и нарушает стиль кодинга в ОК), но если эта вставка не в конце файла (а в конце файла нет смысла восстанавливать значение переменной), то эта вставка ещё и режет код контроллера на куски.

 

И напоследок: прямой инклюд файлов в контроллерах противоречит и архитектуре ОК и современным принципам кодинга в целом.

вы когда-нибудь интересовались защитой php скриптов от нелегального использования?

Надіслати
Поділитися на інших сайтах

Поискал:

https://github.com/opencart/opencart/search?utf8=%E2%9C%93&q=include_once

 

Действительно, что комментировать, если уже на include_once зафейлились.

 

Ваши слова ?

 

И напоследок: прямой инклюд файлов в контроллерах противоречит и архитектуре ОК и современным принципам кодинга в целом.

 

 

opencart все основное грузит через include_once /engine

Вопросы еще будут по include_once в opencart ?

Признать свои ошибочные слова слабо видно

Надіслати
Поділитися на інших сайтах

opencart все основное грузит через include_once /engine

Вопросы еще будут по include_once в opencart ?

Признать свои ошибочные слова слабо видно

 

Да уж, надеюсь, код вы пишите внимательней, чем читаете сообщения, на которые отвечаете.

Что во фразе "прямой инклюд файлов в контроллерах" вам непонятно? Или вы не знаете, где в ОК контроллеры?

Разве я что-то говорил о том, что инклюд как таковой - это плохо?

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

 

 

 

вы когда-нибудь интересовались защитой php скриптов от нелегального использования?

 

Учитывая, что я не понимаю, как это относится к обсуждаемому коду, то, видимо, я интересовался не той защитой, о которой идёт речь.

  • +1 1
Надіслати
Поділитися на інших сайтах


Да уж, надеюсь, код вы пишите внимательней, чем читаете сообщения, на которые отвечаете.

Что во фразе "прямой инклюд файлов в контроллерах" вам непонятно? Или вы не знаете, где в ОК контроллеры?

Разве я что-то говорил о том, что инклюд как таковой - это плохо?

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

И напоследок: прямой инклюд файлов в контроллерах противоречит и архитектуре ОК и современным принципам кодинга в целом.

 

 

Ваши отмазки - не зачтены.

В трех файлах ... основных файлах engine opencart (в maintenance.php точка входа, фактически он engine). Которые грузят почти "ВСЁ" в opencart. Не видите? Ну тогда вообще говорить не о чем.

Заканчивайте отмазки, 3.14ли не в попад, так и скажите.

При этом "громогласно" заявили и обвинили.

 

Насчет безопасности freelancer правильно сказал. Не забываем что код может собираться из кусков, проверяться хеш и т.п.

Не смотрите примитивно на код, с виду код который ничего не выполняет на самом деле может быть куском кода проверки защиты. Даже простая строка кода, из неё могут браться просто символы для компиляции кода защиты

Надіслати
Поділитися на інших сайтах

Ваши отмазки - не зачтены.

В трех файлах ... основных файлах engine opencart (в maintenance.php точка входа, фактически он engine). Которые грузят почти "ВСЁ" в opencart. Не видите? Ну тогда вообще говорить не о чем.

Заканчивайте отмазки, 3.14ли не в попад, так и скажите.

При этом "громогласно" заявили.

 

Насчет безопасности freelancer правильно сказал. Не забываем что код может собираться из кусков, проверяться хеш и т.п.

 

Марк, не обращай внимание на обелившегося админа варез-ресурса.

Все посты персонажа - попытка набить репу. Не более.

Надіслати
Поділитися на інших сайтах

Марк, не обращай внимание на обелившегося админа варез-ресурса.

Все посты персонажа - попытка набить репу. Не более.

И каким образом модерирование варез-форума - влияет на профессиональный уровень человека?

Дорогу перешел?

Или уличен в варезе?

  • +1 2
Надіслати
Поділитися на інших сайтах

Ваши отмазки - не зачтены.

В трех файлах ... основных файлах engine opencart (в maintenance.php точка входа, фактически он engine). Которые грузят почти "ВСЁ" в opencart. Не видите? Ну тогда вообще говорить не о чем.

Заканчивайте отмазки, 3.14ли не в попад, так и скажите.

При этом "громогласно" заявили и обвинили.

 

Вероятно, вы провоцируете меня на грубость, иначе я никак не могу расценить откровенное нежелание понимать о чём я говорю.

 

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

 

Вам не кажется, что такими отмазками вы себя позорите?

 

Я, кстати, когда писал своё мнение о коде, даже не обратил внимание, из какого модуля он и мой комментарий относился исключительно к тому коду, который был у меня перед глазами, а не к модулю или его автору.

Если вы думаете, что мой комментарий мог сильно навредить репутации модуля или вашей, если б вы не начали тут так отчаянно защищаться, то должен сказать, что эта нелепые попытки оправдать код по принципу "сам дурак" (а не попытавшись, например, объяснить почему нужно было только так и никак иначе) - намного больше навредили вашей репутации и не только как программиста.

А так бы, вероятно. никто бы даже не обратил внимание, что этот код из вашего модуля.

 

 

Насчет безопасности freelancer правильно сказал. Не забываем что код может собираться из кусков, проверяться хеш и т.п.

Не смотрите примитивно на код, с виду код который ничего не выполняет на самом деле может быть куском кода проверки защиты. Даже простая строка кода, из неё могут браться просто символы для компиляции кода защиты

 

Но, вероятно, это не ваш случай, иначе вы бы сами об этом сразу сказали, а не разводили сопли.

 

 

 

Все посты персонажа - попытка набить репу. Не более.

 

Вот уж действительно, холивар о качестве кода - отличный способ набить репу, как я раньше то не додумался :-D

Ведь когда критикуешь чей-то код, то сразу прибегает толпа людей, которые будут плюсовать и в первую очередь, конечно же, сам автор кривого кода.

 

 

Надіслати
Поділитися на інших сайтах


Вероятно...

А при чем здесь модуль.

Вы просто не понимаете что такое говнокод вот и все

Ваш уровень junior не позволяет этого понять и отмазки последующие не зачтены.

Говнокод - это архитектурная ошибки, к примеру когда не объявленному методу вдруг начинают оверлолдить или используют пробойный код безопасности или к примеру вызов простого кода opencart (как бы оригинальный код то, но в том архитектурном контексте это говнокод) дважды.

А вы громогласно обвинили обычный стандартный код. И вызов include_once там обязытелен и оправдан так как это точка входа. Если вы не заметили то он вызывается не в контроллере, а как точка входа engine - фактически loader

Так что давайте не делать громогласных заявлений,  не подумавши и не имея квалификации определить что такое понятие говнокод

Надіслати
Поділитися на інших сайтах

Ваш уровень junior не позволяет этого понять и отмазки последующие не зачтены.

 

Вы оцениваете мой уровень по количеству сообщений на этом форуме? Тогда, действительно, по сравнению с вами я даже не джун, а вообще младенец :)

 

Говнокод - это архитектурная ошибки

 

Использовать вместо опенкартовского лоадера прямой инклюд в контроллерах - это не архитектурная ошибка?

Говоря про инклюд я сразу сказал, что это противоречит архитектуре ОК и вы так и не смогли показать хоть один контроллер в ОК, где подобное происходит, а loader.php, action.php и startup.php - никаким боком не контроллеры, а как раз те элементы архитектуры ОК, благодаря которым нет необходимости использовать прямой инклюд на более высоких уровнях.

 

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

 

 

 

И вызов include_once там обязытелен и оправдан так как это точка входа.

 

Точка входа куда?

Вообще, что является точкой входа зависит от конкретного языка и в случае php  - это первая строка в первом файле вызова, но обычно в php точкой входа в приложение называют весь первый файл, то есть в случае ОК - это /index.php для витрины и /admin/index.php - для админки.

 

 

Если вы не заметили то он вызывается не в контроллере

 

А где тогда? В ошибках из первого поста, конечно, путь обрезан, но я не знаю в ОК других файлов с названием maintenance.php не считая языкового, но, если это вставка из языкового файла - это было бы уж совсем не смешно.

 

Так что я уверен, что это файл /catalog/controller/common/maintenance.php.

Надіслати
Поділитися на інших сайтах


 

Вы оцениваете мой уровень по количеству сообщений на этом форуме? Тогда, действительно, по сравнению с вами я даже не джун, а вообще младенец :)

 

 

Использовать вместо опенкартовского лоадера прямой инклюд в контроллерах

Читать умеете - НЕ в контроллере

Для тех кто в танке и не понимает где заканчивается код контроллера  болдом даже выделил

Не понимаешь архитектуру - не умничай, промолчи лучше

 

Всё закончили - надоел, лепишь отмазки

Отправляю вообще в бан у себя, надоела демагогия отмазок

Бред какой то придумал что нельзя вызывать include_once в контроллерах

Сам додумался ? Где написано что в контроллерах opencart нельзя вызывать include_once ? Расскажи это другим разработчикам

Если надо кто хочет тот и вызывает, если в данном случае не обойтись

Надіслати
Поділитися на інших сайтах

Читать умеете - НЕ в контроллере

Для тех кто в танке и не понимает где заканчивается код контроллера  болдом даже выделил

 

Да, с чётким выражением мыслей у вас явно проблемы.

То что вы пытались сказать, называется - "не в классе контроллера", а не просто "не в контроллере", ибо слово контроллер в случае ОК обозначает и класс и его файл (в таких файлах всё равно больше нет ничего).

 

Тем не менее, это файл контроллера, что всё равно противоречит архитектуре ОК, где действует принцип: один файл - один класс и ничего более (когда идёт речь о файлах с декларацией классов).

 

И, что более важно, это также противоречит PSR-1 (если вы знаете, что это)!

Если вы считаете, что нарушение спецификаций PSR не является гавнокодингом, то с вами, действительно, больше не о чем разговаривать.

Надіслати
Поділитися на інших сайтах


 

...

И, что более важно, это также противоречит PSR-1 (если вы знаете, что это)!

 

:ugeek:

Опять кидаетесь громогласными заявлениями и высокими фразами совершенно не понимая что в них описано

По вашей "логике" opencart нарушает PSR-1 (так как  содержит "побочный эффект" и объявление класса (во всем коде кстати), но там написано "не следует", а не "не позволяется", т е если в данном случае избежать невозможно, то это приходится делать)

:-D

Надіслати
Поділитися на інших сайтах

Опять кидаетесь громогласными заявлениями и высокими фразами совершенно не понимая что в них описано

Вот цитата оттуда:

 

A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.

The phrase "side effects" means execution of logic not directly related to declaring classes, functions, constants, etc., merely from including the file.

 

"Side effects" include but are not limited to: generating output, explicit use of require or include, connecting to external services, modifying ini settings, emitting errors or exceptions, modifying global or static variables, reading from or writing to a file, and so on.

 

И ссылка на саму спецификацию: http://www.php-fig.org/psr/psr-1/

 

По вашей "логике" opencart нарушает PSR-1 (так как  содержит "побочный эффект" и объявление класса (во всем коде кстати)

 

Покажите конкретный пример из ОК. Я такого там вспомнить не могу.

 

но там написано "не следует", а не "не позволяется",

 

Суть гавнокодинга как раз в том, что автор такого кода плюёт на любые рекомендации, которые напрямую не влияют на работоспособность кода!

 

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

 

И кстати, обратите внимание, что в спецификации используется should, а не may или can, так что это всё же довольно настоятельные рекомендации!

 

 

т е если в данном случае избежать невозможно, то это приходится делать)

 

Я согласен, что из-за отсутствия в ОК нормальной системы расширений, для работы некоторых модулей неизбежно использование различных костылей, но эта неизбежность не делает такой код качественным. Если во время дождя вы прикрываете голову пакетом, потому что не взяли с собой зонт -  это не превращает этот пакет в зонт.

 

Кроме того, благодаря vQmod/OCMOD (которые сами являются костылями) есть возможность добавлять свой код практически куда угодно, а потому нет необходимости создавать костыли прикрываясь их неизбежностью - модификаторы позволят обойти нерасширяемость ОК без дополнительных костылей.

Надіслати
Поділитися на інших сайтах


Вот цитата оттуда:

 

 

...

Покажите конкретный пример из ОК. Я такого там вспомнить не могу.

...

 

Ну я же говорил что не понимаете что там написано:  /engine - обьявление классов (тем более final class) и "побочный эффект" include_once

Вы даже не поняли что такое "побочный эффект" - изменение настроек тоже побочный эффект и много чего под него попадает.

Весь opencart натыкан тогда, по вашей логике, г.. кодом.

И что вы мне здесь "тулили" про контроллеры? В /engine значит можно, а в контроллерах нельзя (ваши слова). Откуда взял это, придумал сам видно.

 

А про vqmod лучше промолчите вообще, вы в расширяемости opencart и йоты не знаете. 90% функционала что лепят разработчики opencart vqmod - м можно спокойно сделать без него, причем по стандартам php  и PSR-1, только надо знать точку входа.

И не надо пачить seo_pro, seo_url, да и вообще модели не надо патчить, а полностью получить контроль над всем кодом opencart (а в opencart 2. и контроль контроллеров, причем без триггеров).

vQmod и ocmod - это костыли патчеры (ocmod - хоть стандарт opencart, а, vqmod это вообще 3.14)

А за vQmod в opencart 2.x вообще в табло сразу бить надо тому разработчику кто сделал на нем

Надіслати
Поділитися на інших сайтах

markimax,

Ну не надо... Нельзя сделать без vqmod, ocmod

 

Например

Не возможно изменить запрос - без вмешательства в сам запрос - нет инструмента (даже events пока не годятся). Был бы конструктор запросов - тогда можно было бы говорить о чем-то.

А использовать  свою модель - нехорошо, теряется совместимость/зависимость.

 

И ваше решение, по сути, ваш собственный патчер... Вы же что-то прописываете при инсталляции?

Но вы не вмешиваетесь в ядро (магазин) товар, категории, корзина. А только расширяете возможности опенкарта.

  • +1 1
Надіслати
Поділитися на інших сайтах

markimax,

Ну не надо... Нельзя сделать без vqmod, ocmod

 

Например

Не возможно изменить запрос - без вмешательства в сам запрос - нет инструмента (даже events пока не годятся). Был бы конструктор запросов - тогда можно было бы говорить о чем-то.

А использовать  свою модель - нехорошо, теряется совместимость/зависимость.

 

И ваше решение, по сути, ваш собственный патчер... Вы же что-то прописываете при инсталляции?

Но вы не вмешиваетесь в ядро (магазин) товар, категории, корзина. А только расширяете возможности опенкарта.

 

Нет, не патчер - он не патчит код ;) Он добавляет пару строк кода (чувствуете разницу - патчить код и добавлять кусок НЕ в код opencart), при этом если бы делалось через ocmod - пришлось бы перепатчить половину системных файлов для такого функционала и забыть о совместимости. А пара добавленных строк решила этот  вопрос, при этом полная совместимость со всеми версиями и сборками opencart, темами, модулями ! Вот в чем самое главное. Никакие ocmod и vqmod не дали бы сделать так гибко модуль. Тем более всего парой добавленных строк НЕ в код.

При этом перехватывается всё. Я могу заменить результат любой переменной, в любом контроллере (при желании в любой точке контроллера). 

Да с запросами там проблема. Сделаны они в opencart немного коряво - просто строками и никаких "генераторов" fw запросов. Здесь без ocmod никак к сожалению. Но можно тоже разбирать (регулярками) строки (добавлять и изменять) как это делает автор Mega Filter PRO

Надіслати
Поділитися на інших сайтах

Но можно тоже разбирать (регулярками) строки (добавлять и изменять) как это делает автор Mega Filter PRO

 

 

 

Я вам по секрету скажу.. регулярка  это -50% производительности.

 

 

Я в курсе, что и как вы делаете.

 

Поэтому простым ocmod в і можете сделать тоже самое... т.е. загрузить свой loader

 

Я могу заменить результат любой переменной, в любом контроллере

 

Я вас боюсь.. Помолчу.

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.