为啥 set_userdata() 不起作用?

Posted

技术标签:

【中文标题】为啥 set_userdata() 不起作用?【英文标题】:Why set_userdata() doesn't work?为什么 set_userdata() 不起作用? 【发布时间】:2017-10-08 01:48:51 【问题描述】:

我正在使用 codeigniter 框架,但我遇到了会话问题。我试图创建登录页面,但使用 set_userdata() 时出现问题。 它不起作用。当我检查时,没有创建会话。 我的代码有什么问题吗??有人有同样的问题吗??

function __construct()
    $this->CI=&get_instance();
    $auth=$this->CI->config->item('auth');
    $this->CI->load->helper('cookie');
    $this->CI->load->library('session');
    $this->CI->load->model('Auth_users_model'); 


function login($username,$password)
    $result=$this->CI->Auth_users_model->get_login_info($username);
    if($result)
            $password=md5($password);
            if($password==$result->password)
                $user_ses=array('user_id_hcp'=>$result->id,'user_access_hcp'=>$result->access, 'user_username_hcp'=>$username);
                $this->CI->session->set_userdata($user_ses);
                return TRUE;
            else
                return FALSE;
            
    else
        return FALSE;
    

【问题讨论】:

打印 $result 时得到的结果。做 print_r($result);出口;在您的控制器中并检查 '$result' 从用户表返回用户名和密码。我认为这个函数没有问题,它返回TRUE,但会话仍然没有设置......当它返回TRUE时,页面将被重定向到Dashboard,但它被重定向回'登录页面',因为没有设置会话..我认为有两种可能: 1. set_userdata() 不能正常工作; 2. 重定向后会话丢失 【参考方案1】:

而不是 $this->CI->session->set_userdata($user_ses); 尝试简单地使用 $this->session->set_userdata($user_ses);

【讨论】:

该代码在库中,所以我使用 $this->ci->session->set_userdata()。我尝试在其他页面中使用 '$this->session->set_userdata()' 创建会话,但它仍然不起作用。 set_userdata() 不能用...

以上是关于为啥 set_userdata() 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 preventDefault 不起作用?

为啥 innerHtml 不起作用

为啥(ngModel)不起作用?

Angular 的 $http.post 不起作用,它的 $http... 也不起作用,但 jQuerys ajax 起作用。为啥?

为啥这种方法不起作用?

为啥第二个(兄弟)React Context Provider 不起作用?或者,如果上面有同级 Context Provider,为啥 React Context Provider 不起作用