Php Codeigniter会话无法使用我的代码

Php Codeigniter会话无法使用我的代码,php,ajax,codeigniter,session,Php,Ajax,Codeigniter,Session,我在codeigniter中遇到了这个会话问题,没有显示任何内容。我使用ajax调用结果。如果我只将其指向echo,它将显示正确的用户id。我不知道我错了吗?我希望有人能纠正我。多谢各位 这是我的用户登录功能。这用于为当前用户登录设置会话 public function login(){ $username = $this->input->post('username'); $password = $this->input->post('password

我在codeigniter中遇到了这个会话问题,没有显示任何内容。我使用ajax调用结果。如果我只将其指向echo,它将显示正确的用户id。我不知道我错了吗?我希望有人能纠正我。多谢各位

这是我的用户登录功能。这用于为当前用户登录设置会话

public function login(){

    $username = $this->input->post('username');
    $password = $this->input->post('password');

        $sql= $this->crud->getData("
                tbl_user","
                user_username='$username' AND 
                user_password=md5('$password')
                LIMIT 1");

     if($sql['total']==1) { 

            $user_sess = array();

                 foreach($sql['rows'] as $row){
                     $user_sess = array('user_id'=>$row->user_id,
                                       'user_name'=>$row->user_username,
                                       'user_role'=>$row->user_role,
                                       'profile_id'=>$row->profile_id,
                                       'user_type'=>$row->user_type,
                                       'user_status'=>$row->user_status,
                                       'user_group_id'=>$row->user_group_id,
                                       'user_sub_group_id'=>$row->user_sub_group_id);
                 }            

            $this->session->set_userdata('user_sess', $user_sess); 

            $result['login']='valid';
       }else{

            $result['login']='invalid';

    }//end if else

    echo json_encode($result);

}/*END LOGIN FUNCTION*/ 
这是会话不工作时的功能。正在调用当前用户登录id

function user_current_details(){

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


$sql = $this->crud->getData("tbl_user as u,tbl_group as g, tbl_sub_group as sg, tbl_user_permission as up, tbl_user_profile as p", "u.user_id= '$user_id[user_id]' AND u.user_group_id=g.group_id AND u.user_sub_group_id = sg.sub_group_id AND up.user_user_perm ='$user_id[user_id]' AND u.profile_id=p.profile_id")['rows'];

echo json_encode($sql);
}

这是要在视图中显示的Ajax函数。在这个示例中,我调用要在视图中显示的用户配置文件图片

function user_current_details(){

$.post(baseurl + 'globalFunction/user_current_details', {

}, function (data) {
    var result = eval('(' + data + ')');
    $("#img_user_current").attr('src',baseurl+'files/user_pics/'+result[0].profile_img);
})}

多谢各位。对不起,我的英语不好

您正在定义会话数据的数组,用户ID设置为
user\u ID

因此,在
user\u current\u details()
函数中,您将获得如下用户ID:

$user_id=$this->session->userdata('user_id');
而不是

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

阅读文档以获取更多帮助:

您正在定义会话数据的数组,用户ID设置为
user\u ID

因此,在
user\u current\u details()
函数中,您将获得如下用户ID:

$user_id=$this->session->userdata('user_id');
而不是

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

阅读文档以获取更多帮助:

有人在吗。。请(您会遇到什么错误?请参阅此项以查看是否存在任何类型的错误…还有一件事,如果您将结果数限制为1,则意味着只有一个值。在这种情况下,为什么需要foreach?公共函数signup(){$data=array('signupFName'=>$this->input->post('signupFName')),'SignupName'=>$this->input->post('SignupName'),'signupEmail'=>$this->input->post('signupEmail'),'signupPassword'=>$this->input->post('signupPassword');$this->session->set_userdata('user_signup',$data);}诸如此类的东西应该足够任何人了..请(您会遇到什么错误?请参阅此项以查看是否存在任何类型的错误…还有一件事,如果您将结果数限制为1,则意味着只有一个值。在这种情况下,为什么需要foreach?公共函数signup(){$data=array('signupFName'=>$this->input->post('signupFName')),'SignupName'=>$this->input->post('SignupName'),'signupEmail'=>$this->input->post('signupEmail'),'signupPassword'=>$this->input->post('signupPassword');$this->session->set_userdata('user_signup',$data);}这样的东西应该足够了