【问题标题】:CodeIgniter Session is not setCodeIgniter 会话未设置
【发布时间】:2014-08-11 21:03:49
【问题描述】:

在以下情况下未设置会话。它早些时候对我有用。 我正在使用 CodeIgniter。

 public function authenticate(){
    $user = new Entity\User;
    //$user2 = new Entity\User;
    $user->username = "prayag@gmail.com";
    $user->password = "prayag";
    $userRepository = $this->doctrine->em->getRepository('Entity\User');
    $checkLogin = $userRepository->checkLogin($user);
    echo "Username => ". $checkLogin[0]->username;
    echo "ID => ". $checkLogin[0]->id;
    $this->load->library('session');
    $this->session->sess_destroy();

    if(!empty($checkLogin)){
        $CI =& get_instance();
        $this->session->set_userdata('user_id',$checkLogin[0]->id);

        $loggedIn = $this->session->set_userdata('user_id');    
            if($loggedIn !== TRUE){
                echo "session is not set";
                //echo $this->session->set_userdata('user_id');
            } else {
                    echo "session is set";
            }
        }
        else{
            echo "Username not found";  
        }
    }

我尝试使用以下帖子解决它:https://stackoverflow.com/questions/10712250/w hat-is-the-proper-way-to-test-codeigniter-session-variable

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

    你是否加载了会话库

    $this->load->library('session');

    还有,转换代码

    $loggedIn = $this->session->set_userdata('user_id');    
                if($loggedIn !== TRUE){
                    echo "session is not set";
                    //echo $this->session->set_userdata('user_id');
                } else {
                        echo "session is set";
                }
            }
    

    if($this->session->userdata('user_id')!=true)
       {
            echo "session is not set";
                    //echo $this->session->set_userdata('user_id');
       } 
    else 
    {
        echo "session is set";
     }
    

    【讨论】:

      【解决方案2】:

      $this->session->sess_destroy();之后

      不应该是 session_start(); 之类的东西吗?

      或者在代码中间销毁会话有什么意义?

      【讨论】:

      • 我之前在 3 个以上的项目中尝试过它在那里工作正常,但这里不是
      • 你能用$this->session->unset_userdata($something);代替销毁它吗?
      【解决方案3】:

      改变这一行

      $loggedIn = $this->session->set_userdata('user_id');  
      

      $loggedIn = $this->session->userdata('user_id'); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-08
        • 2018-06-04
        相关资源
        最近更新 更多