Что нового

fastcgi cache и DLE (1 Viewer)

  • Автор темы Oleksandr Miroshnichenko
  • Дата начала
Oleksandr Miroshnichenko

Oleksandr Miroshnichenko

Участник
Регистрация
30 Июл 2021
Сообщения
40
Реакции
63
Всем привет, нужна помощь с правильной настройкой fastcgi cache для DLE.
Кеш работает отлично, но возникает ошибка, когда гость заходит на закешированную страницу и жмет лайк или диcлайк, то появляется ошибка: "Ваша пользовательская сессия истекла, перезагрузите страницу в браузере и при необходимости войдите на сайт повторно."

DELETED

Подскажите что я не учел или куда смотреть. Спасибо!
 
Последнее редактирование:
как вариант - https://webrambo.ru/89-fiks-problemy-s-nestandartnymi-reytingami-v-113-i-vyshe-v-moih-shablonah.html
тут проблема в JS скриптах шаблона, а не в настройке сервера.
Рейтинг стандартный ('Нравится' или 'Не нравится'), шаблон сам верстал - в js файлах шаблона нет ничего связанного с рейтингом.
Ссылки для лайков и дислайков выводятся тегами [rating-plus][/rating-plus] и [rating-minus][/rating-minus].

Проблема в том, что при полном кешировании страницы, также кешируется dle_login_hash (это параметр выводимый dle в исходном коде каждой страницы), потом когда он передается на обработчик, происходит его сверка и скрипт понимает что хеш невалидный для данного гостя и выводит ошибку.
Фиксится только удалением строк в файле engine/ajax/rating.php:
Код:
if( $_REQUEST['user_hash'] == "" OR $_REQUEST['user_hash'] != $dle_login_hash ) {
    echo "{\"error\":true, \"errorinfo\":\"{$lang['sess_error']}\"}";
    die();
}

Но насколько это безопасно - хз.
P.S. Да-да, сам спросил - сам ответил. Но все же "правильного" решения я все еще не нашел.
 
Последнее редактирование:
Вынести dle_login_hash в отдельный файл, и не кешировать его
 

Пользователи, просматривающие данную тему

Верх