只有在確定的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'變量,將無法有效地工作只需關閉cookies – sjagr 2014-10-06 18:32:16
@sjagr你是對的,沒有想到它。只要使用簡單的驗證方法檢測到殭屍程序,就會運行緩存消息的腳本,但我計劃緩存機器人嘗試訪問的每個頁面的警告。好像我將不得不尋找其他解決方案。感謝您指出:) – Stubborn 2014-10-06 18:35:19