PHP Codeigniter 无法正常工作

Posted

技术标签:

【中文标题】PHP Codeigniter 无法正常工作【英文标题】:PHP Codeigniter isn't working properly 【发布时间】:2012-10-28 05:48:47 【问题描述】:

我正在使用 php codeigniter 创建一个网站。当我登录时,它会创建一个会话并重定向到主页。当我注销时,它会破坏会话。当我写主页的网址时,它工作正常。但是如果我点击浏览器上的“返回一页按钮”,它会返回主页。即使主页应该检查我是否登录。我的代码如下。我希望我能清楚地解释我的困境。如果没有,请询​​问。提前致谢。

public function signin()

    $this->form_validation->set_rules('email2', 'E-mail', 'required|valid_email');
    $this->form_validation->set_rules('password2', 'Password', 'required|min_length[5]');
    $query = "select password from user where email = '$this->input->post('email2')';";

    if($this->form_validation->run())
    
        if($this->doj_database->check_signin($query, $this->input->post('password2')))
        
            $query = "select * from user where email = '$this->input->post('email2')';";
            $data['user'] = $this->doj_database->search_with_email($query);
            $newdata = array('logged_in' => TRUE);
            $this->session->set_userdata($newdata);
            $url = "/DIRTY_ONLINE_JUDGE/goto_home/$data['user']['user_id']";
            redirect($url);
        
        else
        
            $this->load->view('wrong_login');
        
    
    else
    
        $this->load->view('wrong_login');
    





public function goto_home($id)

    if($this->session->userdata('logged_in'))
    
        $data['user'] = $this->doj_database->search_with_id($id);
        $data['user']['password'] = $this->encrypt->decode($data['user']['password']);
        $this->load->view('home', $data);
    
    else
    
        $this->load->view('not_logged_in');
    




public function logout()

    $this->session->sess_destroy();
    $this->load->view('index');

【问题讨论】:

【参考方案1】:

添加

    header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
    header('Pragma: no-cache'); // HTTP 1.0.
    header('Expires: 0');

这个在

public function goto_home($id)


    header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
    header('Pragma: no-cache'); // HTTP 1.0.
    header('Expires: 0');

        $this->output->set_header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
        $this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
        $this->output->set_header('Cache-Control: post-check=0, pre-check=0',false);
        $this->output->set_header('Pragma: no-cache');

    if($this->session->userdata('logged_in'))
    
     $data['user'] = $this->doj_database->search_with_id($id);
     $data['user']['password'] = $this->encrypt->decode($data['user']['password']);
     $this->load->view('home', $data);
    
    else
    
      $this->load->view('not_logged_in');
    

这样页面缓存就会被移除

【讨论】:

以上是关于PHP Codeigniter 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 查询在 Codeigniter 中返回空结果,但在本机 PHP 中工作正常

codeigniter 3 - 删除 index.php:Linux 上的错误 404,但在 Windows 上工作正常

php codeigniter无法访问托管中的文件pdf

在 cpanel 安装后 Codeigniter 项目无法正常工作

网址在 codeigniter 中无法正常工作,给出错误“未指定输入文件”。

CodeIgniter 会话 ID 更改且无法正常工作