Перейти к публикации

Alex-GR

Клиенты
  • Публикации

    73
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    2

Последний раз Alex-GR выиграл 26 апреля

Публикации Alex-GR были самыми популярными!

Репутация

5 Обычный

О Alex-GR

  • Звание
    Активист
  • День рождения 01.03.1969

Контакты

  • Сайт
    https://avtoforex.ru/

Посетители профиля

1 776 просмотров профиля
  1. Бот Бинга "compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm" нашел на сайте скрытую ссылку и переходит по ней не с сайта, а напрямую: https://site.ru/engine/go.php?url=aHR0cDovL3d3dy5xxxxxxyb2JvZm9yZXgucnUvb3BlcmF0aW9ucy93ZWxXXXXWJvbnVzLz9hPXXXXXD%3D В результате генерируется варнинг: [error] 6433#6433: *204088 FastCGI sent in stderr: "PHP message: PHP Warning: Undefined array key "HTTP_REFERER" in /var/www/5c73z9h6/data/www/site.ru/engine/go.php on line 47" while reading response header from upstream, client: 157.55.39.127, server: site.ru, request: "GET /engine/go.php
  2. 384149 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Undefined constant "error" in /var/www/1111/data/www/site.ru/engine/classes/recaptcha.php:105 Смотрим 105 строку файла recaptcha.php и видим, что нет кавычек в переменной $answers: $answers [error-codes] А должно быть: $answers['error-codes'] Исправьте ошибку.
  3. Возможно это и так - вы разработчики, и вы знаете код лучше. А баг ваш когда устраните?
  4. И уж если, цитирую: "Для публикаций добавлена поддержка отдачи заголовка "304 Not Modified", в случае отправки на сервер соответствующего запроса от поисковых систем. Если публикация не редактировалась за указанный период, то DLE будет отдавать просто короткий соответствующий HTTP с кодом 304. Что позволит снизить расход трафика на сервере, и несколько снизить нагрузку на сервер." стоит задача снизить нагрузку на сервер, то стоит проверку модификации публикации организовать как можно ближе к получению переменной $_DOCUMENT_DATE из БД (или кеша), в файлах show.full.php и static.php, а
  5. А если вы перед эхо очистите буфер - то код сайта выводится не будет, только строка "Есть данные": if ($IfModifiedSince && $IfModifiedSince >= $_DOCUMENT_DATE) { //header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); ob_end_clean(); echo 'Есть данные'; die(); Ну и "вишенка на торте". Вот такой код: if ($IfModifiedSince && $IfModifiedSince >= $_DOCUMENT_DATE) { ob_end_clean(); header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); die(); } отрабатывает без предупреждений со стороны Nginx.
  6. И ещё - сделайте простую проверку того, что данные передаются до вывода заголовка 304 Not Modified: в файле /engine/modules/functions.php закомментируйте строку и добавьте echo, чтобы быть уверенным, что отрабатывает именно этот код: //header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); echo 'Есть данные'; и через curl отправьте запрос с указанием заголовка If-Modified-Since - вы получите код сайта и в конце текст "Есть данные", хотя кода быть не должно! Вывод должен быть нулевым.
  7. Тогда как вы объясните тот момент, что варнинги перестают сыпаться в лог ошибок после переноса кода проверки даты с функции GzipOut выше первого echo в файле /engine/modules/main.php?
  8. Как я и обещал, я решил причину вывода предупреждения Nginx. Это баг DLE версии 14.2. Виновником оказался код DLE, а вернее невнимательность его разработчиков. Для начала хочу напомнить celsoft-ту вот это правило: https://www.php.net/manual/ru/function.header.php Оно гласит: "Помните, что функцию header() можно вызывать только если клиенту ещё не передавались данные. То есть она должна идти первой в выводе, перед её вызовом не должно быть никаких HTML-тегов, пустых строк и т.п.". Теперь смотрим файл /engine/modules/functions.php, в котором прописана функция GzipOut. В ней п
  9. Апача нет. Nginx + PHP-FPM. Я, конечно, только учусь. Но я докопаюсь до причины. Не понятно, почему вы так против. Я обозначил проблему, и я её решу. Вам то легче её решить. У вас знаний и опыта больше. Но если не хотите - ваше право. Напрягает отношение к клиентам. 13 лет я с вами. И вы тихонечко посылаете меня на.... Почему? За что? Впрочем, это ваше право. Зря я лицензии покупал. C таким отношением...
  10. Имеет отношение к DLE. При запросе поисковиков с заголовком If-Modified-Since DLE возвращает ответ "HTTP/1.1 304 Not Modified" и "Content-Length 0" именно Nginx, который принимает не нулевые данные, указанные в заголовке Content-Length и посланные DLE. Не снаружи, а внутри. Отсюда и варнинг. Тут данные посылаются не на сервер, а идет ответ на запрос поисковика с DLE на Nginx, и в заголовках и реальных данных расхождение. Как решить эту проблему?
  11. Добрый день! При переходе на версию 14.2 в логах Nginx появились предупреждения вида: [warn] 27840#27840: *85737 upstream sent more data than specified in "Content-Length" header while reading upstream, client: 66.249.76.61, server: ... Они возникают в момент обращения поисковиков к страницам сайта: поисковик делает запрос на сайт с заголовком If-Modified-Since или If-None-Match и если контент страницы не изменился, движок отдает код "304 Not Modified" - именно в этом случае возникает ошибка. Кто подскажет, как можно убрать эти предупреждения? Сайт - avtoforex.ru
  12. Alex-GR

    PHP 8

    Рад, что "нетипичный" контингент умеет думать... тем местом, на котором сидит. И читать не умеет от слова "вообще"... И почему девочки суют свой длинный нос туда, где "Макар телят не пас"? Вопрос риторический.
  13. Не уверен, что это правильно. Посмотрите строку навигации приведенной страницы Google ""Google. Пример разметки: Главная - Центр Поиска Google - Документация - Расширенная поисковая оптимизация Главная страница есть в строке навигации.
  14. Alex-GR

    PHP 8

    Вероятнее всего, эта ошибка связана с несовместимостью с PHP 8. Вот, например: https://stackoverflow.com/questions/64868685/fatal-error-cannot-declare-class-xmlparser-because-the-name-is-already-in-use У меня лента RSS отключена, поэтому не было таких ошибок.
  15. Alex-GR

    PHP 8

    Еще ошибка: PHP message: PHP Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given in /var/www/.../engine/api/api.class.php:402 Наверное, нужно пересмотреть все функции count(), у меня в плагине точно такая же ошибка была. И еще ошибка, там же: PHP message: PHP Fatal error: Uncaught TypeError: chmod(): Argument #2 ($permissions) must be of type int, string given in /var/www/.../engine/api/api.class.php:418
×
×
  • Создать...