0

我想要会话销毁注销,但它们不能正常工作。

控制器

public function logout(){
            $this->session->ses_destroy();
            redirect('users/index');
        }

看法

<ul class="dropdown-menu">
   <li><a href="javascript:;">My Profile</a></li>
   <li><a href="javascript:;">My Groups</a></li>
   <li class="divider"></li>
   <li><a href="<?php echo base_url().'Users/logout' ?>">Logout</a></li>
</ul>

结果

Fatal error: Call to undefined method CI_Session::ses_destroy()
4

5 回答 5

1

你有错字。根据CodeIginiter-2 文档,销毁会话的方法是sess_destroy,不是ses_destroy

于 2013-06-26T10:16:00.407 回答
0

存在拼写错误 sess_destroy

public function logout(){
            $this->session->sess_destroy();
            redirect('users/index');
        }
于 2013-06-26T10:14:23.237 回答
0

因为您的控制器中有一些拼写错误。

$this->session->ses_destroy(); replace $this->session->sess_destroy();

正确阅读句子链接是:http ://ellislab.com/codeigniter/user-guide/libraries/sessions.html 检查此链接。

于 2013-06-26T10:15:57.470 回答
0

您的控制器中有一个拼写错误。
$this->session->sess_destroy()
而不是
$this->session->ses_destroy()

请检查以下示例以避免您的混淆:

    类 Home 扩展 CI_Controller
    {
        函数 __construct()
        {
            父::__construct();
            //如果用户没有访问,这个条件检查会话是否存在  
            //登录方法,因为它可以在没有用户会话的情况下访问
            if( !$this->session->userdata('logged_in') && $this->router->method != 'login' ) {
                重定向(“登录”);
            }
        }
        函数索引()
        {
            $session_data = $this->session->userdata('logged_in');
            $data['email'] = $session_data['email'];
            $this->load->view('home_view', $data);
            $this->load->view('home_content_view', $data);
        }

        函数注销()
        {
            $this->session->userdata = array();
            $this->session->sess_destroy();
            重定向(“家”,“刷新”);
        }
    }

于 2013-06-26T10:29:57.447 回答
0

这样做,

首先像这样在您的会话中存储用户名和密码详细信息

 $this->session->set_userdata($this->data);

然后对于会话销毁使用此代码,

    public function logout(){
    $this->session->sess_destroy();
    redirect(base_url().''); 
    }
于 2013-06-26T10:33:22.220 回答