Мне нужно кэшировать страницу, только если задан определенный сеанс PHP.
Чтобы сделать это, я использую следующий код:Кэш, если условие выполнено
session_start();
if(isset($_SESSION['bot'])){
$etagFile = md5_file(__FILE__);
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 31556926) . " GMT");
header("Etag: $etagFile");
header('Cache-Control: private');
die('You\'ve been banned.');
}
echo 'Some content';
Проблема заключается в том, что, когда истекает срок сеанса, пользователь увидит «Некоторое содержимое», в то время как он должен видеть «Вы были запрещены» для год.
error_reporting(E_ALL);
ничего не возвращает.
В чем может быть проблема?
Использование '$ _SESSION' vars не будет работать очень эффективно, если боты решают просто выключить куки – sjagr
@sjagr ты прав, не думал об этом. Сценарий для кэширования сообщения запускается, как только бот обнаруживается с помощью простого метода проверки, но я планировал кэшировать предупреждение для каждой страницы, которую бот пытается посетить. Похоже, мне придется найти другое решение. Спасибо, что указали на это :) – Stubborn