php 注销后清除缓存

lbsnaicq  于 2022-10-30  发布在  PHP
关注(0)|答案(6)|浏览(237)

我已经为控制器登录放置了codeigniter代码。我想在注销后清除缓存。

function logout()
    {
        $this->session->sess_destroy();

        $this->index();

    }
kq4fsx7k

kq4fsx7k1#

clearstatcache -清除文件状态缓存这个函数缓存特定文件名信息,所以你只需要调用内置函数clearstatcache(),php
要清除浏览器缓存的页面,请执行以下操作:

header ("Expires: ".gmdate("D, d M Y H:i:s", time())." GMT");  
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  
header ("Cache-Control: no-cache, must-revalidate");  
header ("Pragma: no-cache");
64jmpszr

64jmpszr2#

试试这个

function delete_cache($uri_string=null)
{
    $CI =& get_instance();
    $path = $CI->config->item('cache_path');
    $path = rtrim($path, DIRECTORY_SEPARATOR);

    $cache_path = ($path == '') ? APPPATH.'cache/' : $path;

    $uri =  $CI->config->item('base_url').
            $CI->config->item('index_page').
            $uri_string;

    $cache_path .= md5($uri);

    return unlink($cache_path);
}

如果不是工作
请参考这些
Lib
manual

l0oc07j2

l0oc07j23#

用这个

function logout()
{
        $this->session->sess_destroy();
        $this->cache->clean();
        $this->index();
}

清除控制器构造中的浏览器缓存

header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");

也是check this

juzqafwq

juzqafwq4#

如果你想获取数组cache_item_id vise,那么你可以只做下面的事情。

$wildcard = 'latest';
$all_cache = $this->cache->cache_info();
foreach ($all_cache as $cache_id => $cache) :
   if (strpos($cache_id, $wildcard) !== false) :
      $this->cache->delete($cache_id);
   endif;
endforeach;

或者试试这个
函数logout(){

$this->CI =& get_instance();   
         $this->CI->session->sess_destroy();
         $this->cache->clean();
         redirect(base_url());
}
6ioyuze2

6ioyuze25#

只需在logout函数中添加以下代码行:

$this->cache->clean();

有关codeigniter中缓存的更多信息,请参见this

wixjitnu

wixjitnu6#

在代码中添加以下脚本

history.pushState(null, null, location.href);
window.onpopstate = function () {
    history.go(1);
};

相关问题