Ошибки при включенной отладке

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X

Ошибки при включенной отладке

#1 14 апреля 2021 в 09:56
Доброе время суток. Может как-то можно сделать так, чтобы гостям и пользователям не были видны ошибки и косяки при включенной отладке?
#2 14 апреля 2021 в 10:12
Не пробовал, нагуглил такое:

В main.tpl.php в самый верх попробуйте добавить вот это:

  1. <?php if (!cmsUser::isAdmin()) ini_set('display_errors', 'Off'); ?>
#3 14 апреля 2021 в 10:21
вместо

ini_set('display_errors', 'Off')

Нифигаccе о-го-гошеньки
можно попробовать
#4 14 апреля 2021 в 10:30
Нифигаccе о-го-гошеньки спасибо, не сработало.
Tolya можно всю строчку, ну пожалуйста?…
#5 14 апреля 2021 в 11:00

Tolya можно всю строчку, ну пожалуйста? ...

@noname
Если б я знал… Я просто балаболю…
#6 14 апреля 2021 в 11:17

не сработало

@noname
А если вместо 'Off' написать 0?

  1. <?php if (!cmsUser::isAdmin()) ini_set('display_errors', 0); ?>
#7 14 апреля 2021 в 11:38
Может не работает из-за FastCGI (Nginx + PHP-FPM), а на апач php 7.2 — ошибок в том компоненте нет на этой версии php ...
qna.habr.com/q/39463, coderoad.ru/5911964/Не-удается-включить-php-display_errors
#8 14 апреля 2021 в 12:43
Вывод ошибок включается/отключается в bootstrap.php на старте системы. В этот момент не загружен класс пользователей и, соответственно, нет способа отличить админа от гостя.

Первое событие после определения прав текущего пользователя это 'page_is_allowed'. Можно сделать хук в своём компоненте и в нём отключать вывод ошибок:
  1. @ini_set('display_errors', 0);
Либо воспользоваться альтернативной отладкой, где уже реализована опция "Показывать отладочную информацию только администраторам".
#9 14 апреля 2021 в 12:52

Может не работает из-за FastCGI (Nginx + PHP-FPM)

@noname
не работает из за того что, код добавляется в main.tpl.php.

например: добавив строку в main.tpl.php после </head>
  1.  
  2. <?php error_reporting(0); echo $device; ?>
  3.  
error_reporting(0); — скрывает от нас ошибку на экране,
echo $device; — вызывает ошибку, так-как переменная не определена.
Делаем вывод, что данный код просто на просто не до всех ошибок дотягивается, следовательно его надо запихать куда-то в другое место.
Думаем откуда же он у нас дотянется, открываем файл bootstrap.php смотрим строку 36 и вот же error_reporting(0); значит от туда он дотягивается до всех ошибок. Но жаль что там не будет работать cmsUser::isAdmin()

Данное балабольство, для того чтоб вы не просто копировали и вставляли код, а начинали уже рассуждать.
#10 14 апреля 2021 в 12:57

Но жаль что там не будет работать cmsUser::isAdmin()

Tolya
Там можно написать условие для ip, с которого админ заходит на сайт.
#11 14 апреля 2021 в 13:03

чтоб вы не просто копировали и вставляли код, а начинали уже рассуждать.

Tolya
Нет на это времени. А вот как лучше сделать три Типа контента — на это есть… + seo и тд.
PS кран допустим можно починить самому, возможно заменив резинку, но лезть в программирование без необходимости и особого желание — пустая трата времени.
#12 14 апреля 2021 в 13:06

Либо воспользоваться альтернативной отладкой

WebMan
Раньше как-то ставил расширенную отладку и не понравилось. А теперь когда "съел" не одну собаку на доп компонентах, настораживает:!!! Внимание! Будет перезаписана часть файлов ядра!!!!
#13 14 апреля 2021 в 13:15

Нет на это времени. А вот как лучше сделать три Типа контента — на это есть… + seo и тд.
PS кран допустим можно починить самому, возможно заменив резинку, но лезть в программирование без необходимости и особого желание — пустая трата времени.

@noname
Вот вы молодец laughсвоё время вы цените и бережёте, тратить не на что не хотите. А чужое так вам не жалко stukделаю вывод, что

пустая трата времени.

@noname
Это вам, что-то подсказывать
#14 14 апреля 2021 в 13:24
Неправильный вывод. Постоянно включенная отладка вредно для нагрузки на сайт, но чтобы не портить психику гостей и пользователей ошибки и предупреждения должен видеть только одмин, когда включит на время. Посему нужно без компонента "Расширенная отладка" сделать такую фичу. Если правок не много, я запишу в .txt, что менял и при обновлении все будет чики-пуки.
#15 14 апреля 2021 в 13:27

Там можно написать условие для ip, с которого админ заходит на сайт.

@IamB
IP у провайдеров динамические, могут меняться после перезагрузки роутера.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.