Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 如何从ci_会话检索当前用户会话id。?_Ajax_Codeigniter - Fatal编程技术网

Ajax 如何从ci_会话检索当前用户会话id。?

Ajax 如何从ci_会话检索当前用户会话id。?,ajax,codeigniter,Ajax,Codeigniter,我想获取当前会话id,以便在所有页面中使用它。我想在标题中传递会话数据。我可以将会话存储在ci\u sessions表中。但是如何从ci\u会话检索当前登录用户名/sesson\u id 这是我的ci_会话代码 CREATE TABLE IF NOT EXISTS `ci_sessions` ( `id` varchar(128) NOT NULL, `ip_address` varchar(45) NOT NULL, `timestamp` in

我想获取当前会话id,以便在所有页面中使用它。我想在标题中传递会话数据。我可以将会话存储在
ci\u sessions
表中。但是如何从
ci\u会话
检索当前登录用户名/sesson\u id

这是我的ci_会话代码

CREATE TABLE IF NOT EXISTS `ci_sessions` (
        `id` varchar(128) NOT NULL,
        `ip_address` varchar(45) NOT NULL,
        `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
        `data` blob NOT NULL,
        KEY `ci_sessions_timestamp` (`timestamp`)
);
下面是会话设置代码

if($this->form_validation->run())
            {
                $username =  $this->input->post('login_username');
                $password =  $this->input->post('login_password');


                // ip address
                //$ip_address= $this->user_activity->get_client_ip();

                 //Retrieving session data and other data
                    //$captcha_code=$_SESSION['captcha'];
                    //$user_agent=$_SERVER['HTTP_USER_AGENT'];

                //call the model for auth
                $this->load->Model('Auth_model');
                if($this->Auth_model->login($username, $password)){


                    $data = array(
                            'client_username' => $username,
                            'is_logged_in' => true
                              );                    

                    $this->session->set_userdata($data);
                    $this->load->view('include/header', $data);
                    //$this->session->set_flashdata('item', $datav['name']);

                }
                else{
                    echo'something went wrong';
                }
我使用pop dailog进行登录和注册,这是我的ajax

<script>
    $("input#login_btn").on('click',function(event){
        event.preventDefault();

            var x = document.forms["loginform"]["login_username"].value;
            var x1 = document.forms["loginform"]["login_password"].value;
            var y = document.getElementById('login-error');
            var z = document.getElementById('password-error');

            if (x == "") { y.style.display ='block'; }else{ y.style.display ='none'; }
            if (x1 == "") { z.style.display ='block'; }else{ z.style.display ='none'; } 

                var d = document.forms["loginform"]["login_username"].value;
                var d1 = document.forms["loginform"]["login_password"].value;       

        if(d != '' && d1 != ''){
                var url = $(this).attr('action');
                var method = $(this).attr('method');
                var data = $(this).serialize();

                $.ajax({
                   url:url,
                   type:method,
                   data:data
                }).done(function(data){
                   if(data !=='')
                    {

                        if(d !== '' && d1 != '' ){
                            //$("#login_fail").show('fast');
                            //$("#login_fail").effect( "shake" );
                            $('#loginform')[0].reset();
                            //var url = $('#current_loginurl').val();                   
                            //window.location.href=url;

                            var url = $('#current_loginurl').val();                 
                            window.location.href=url;

                        }                       
                    }
                    else
                    {
                        var url = $('#current_loginurl').val();                 
                        window.location.href=url;
                        throw new Error('go');
                    } 
                });            

            $( "div" ).each(function( index ) {
            var cl = $(this).attr('class');
            if(cl =='')
                {
                    $(this).hide();
                }
            });
            }
        });
</script>

$(“输入#登录_btn”)。在('click',函数(事件){
event.preventDefault();
var x=document.forms[“loginform”][“login\u username”]。值;
var x1=document.forms[“loginform”][“login_password”]。值;
var y=document.getElementById('login-error');
var z=document.getElementById('password-error');
如果(x==“”){y.style.display='block';}其他{y.style.display='none';}
如果(x1==“”){z.style.display='block';}其他{z.style.display='none';}
var d=document.forms[“loginform”][“login\u username”]。值;
var d1=document.forms[“loginform”][“login_password”]。值;
如果(d!=''&&d1!=''){
var url=$(this.attr('action');
var method=$(this.attr('method');
var data=$(this.serialize();
$.ajax({
url:url,
类型:方法,
数据:数据
}).完成(功能(数据){
如果(数据!='')
{
如果(d!=''&&d1!=''){
//$(“#登录失败”).show('fast');
//$(“登录失败”)。效果(“震动”);
$('#loginform')[0].reset();
//var url=$('#current_loginurl').val();
//window.location.href=url;
var url=$('#current_loginurl').val();
window.location.href=url;
}                       
}
其他的
{
var url=$('#current_loginurl').val();
window.location.href=url;
抛出新错误('go');
} 
});            
$(“div”)。每个函数(索引){
var cl=$(this.attr('class');
如果(cl='')
{
$(this.hide();
}
});
}
});

从下表中查找
当前会话
。按
降序
中的id获取具有
限制的
顺序的记录

$this->db->order_by('id', 'DESC');
$this->db->limit(1);
$last_session = $this->db->get('ci_sessions')->row_array();

print_r($last_session['data']);//prints current session data
更新 但是获取当前用户会话id的最简单方法是使用会话库

$this->load->library('session');
$id = $this->session->userdata('id');//id is session variable that you set
echo $id;

我应该在控制器ot视图中的何处使用它。?在控制器中。别忘了加载数据库。它会给我错误的
**未定义的索引数据**
print\r($last\u session)
上输出的内容。print\r($lase\u session)将整行作为resutl。但是
打印($lase\u session['id'])
不工作