Ajax 如何从ci_会话检索当前用户会话id。?
我想获取当前会话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
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'])
不工作