Некорректное поведение кэша сайта?

Ссылка скопирована
12 марта 2026 1 ответ

У меня есть переменная auth которая по умолчанию false (Строка 34). Далее идёт проверка на авторизацию и запись данных в cookie: https://github.com/EngineGPDev/EngineGP/blob/main/...
После авторизации, некоторые разделы на сайте остаются не авторизованными и решается это очисткой cookie файлов каждой страницы индивидуально. После того как посылается команда на удаление cookie, ситуация схожая, пользователь авторизован пока не почистит их на каждой странице.
Прикрепляю видеоролик с проблемой
Там где звук корзины - происходит очистка cookie
https://youtu.be/XPL1Wsqvy14

Полностью меняли cookie, проблема не решилась.
Backend: php 8.0
Frontend: Apache + NGINX в режиме FastCGI
Можете ткнуть носом? Исходники на GitHub:
https://github.com/EngineGPDev/EngineGP

Проверка происходит в файле: https://github.com/EngineGPDev/EngineGP/blob/main/... (Строки 34 - 77). Подключена библиотека Cookie в файле: https://github.com/EngineGPDev/EngineGP/blob/main/... (Строки 433 - 439). Авторизация происходит через файл auth.php: https://github.com/EngineGPDev/EngineGP/blob/main/...

Дополнительно:

Ответы:

Я тут ради интереса глянул первый файл в гите. Увидел что у вас логин пароль и хэш лежит в куках. Понял что в принципе смысла дальше что-либо смотреть нет.

На случай если вы что-то конкретное будете спрашивать, а не приводить юзекейсы и простыни кода на гитхабе в купе с роликами на ютубе:
Определите проблему с точностью до куска кода, помещающегося в 10-20 строк.
Опишите что должно быть и что получается
По необходимости дайте дампы переменных или уточните запрашиваемые детали.

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

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Дмитрий К. Ответ

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

1. Очистка кэша браузера: иногда проблемы могут быть связаны с кэшем браузера, который хранит данные о посещенных сайтах. Очистка кэша браузера может помочь решить проблему. В большинстве браузеров это можно сделать через настройки или используя комбинацию клавиш Ctrl + Shift + Delete.

2. Перезагрузка страницы: иногда проблема может быть связана с тем, что страница была загружена из кэша, а не с сервера. Попробуйте перезагрузить страницу, нажав клавишу F5 или Ctrl + R.

3. Изменение настроек кэширования на сервере: если вы веб-разработчик и у вас есть доступ к серверу, вы можете попробовать изменить настройки кэширования на сервере. Например, вы можете настроить HTTP-заголовки кэширования или использовать специальные инструменты для управления кэшем.

4. Использование версионирования файлов: если проблема связана с кэшированием статических файлов (например, CSS, JavaScript), вы можете использовать версионирование файлов. Это позволяет браузерам загружать новые версии файлов, даже если они кэшированы.

Пример кода на PHP для управления кэшем:

// Отключение кэширования
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Дата в прошлом
 
// Установка заголовков для кэширования на определенное время
$expires = 60 * 60 * 24 * 30; // 30 дней
header("Cache-Control: max-age=$expires");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expires) . " GMT");

// Отключение кэширования header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Дата в прошлом // Установка заголовков для кэширования на определенное время $expires = 60 * 60 * 24 * 30; // 30 дней header("Cache-Control: max-age=$expires"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expires) . " GMT");

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

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно