如何在登录codeigniter期间将用户id设置为会话,并将此用户id访问多个功能?
登录codeigniter并访问此用户id以访问多个功能时,用户id设置为会话?必须防止直接访问url如何在登录codeigniter期间将用户id设置为会话,并将此用户id访问多个功能?,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,登录codeigniter并访问此用户id以访问多个功能时,用户id设置为会话?必须防止直接访问url public function loginaction() { $this->load->library('session'); $a=$this->input->post('email'); $b=trim($this->input->post('pa
public function loginaction()
{
$this->load->library('session');
$a=$this->input->post('email');
$b=trim($this->input->post('password'));
$b1=md5($b);
$c=1;
// echo $a;
// echo $b1;
$data=$this->userdata->userlogin($a,$b1,$c);
// print_r($data);
// exit;
if($data)
{
echo true;
foreach ($data as $login)
{
$uid=$this->session->set_userdata('logId',$login->usr_id);
//redirect(base_url() . 'main/userhome' . $uid, 'refresh');
}
}
else
{
echo "Invalid username or password..!!!!";
$a=$this->input->post('email');
}
}
这是我的会话设置代码。我希望在主页中显示此用户ID。我如何获取它
<script>
function myFunction()
{
$.ajax({
type: "POST",
url: "<?php echo base_url()?>Main/loginaction",
data:{email:document.getElementById('email').value,password:document.getElementById('password').value},
success: function(data){
alert(data);
if(data==true)
window.location.replace('<?php echo base_url()?>Main/userhome');
}
});
}
</script>
我猜您正在使用数据库存储会话 现在访问会话中的数据: 首先初始化会话库:
$this->load->library('session');
然后
另外,如果要打印所有用户会话数据,则可以执行以下操作:
echo $this->session->all_userdata();
希望这有助于:
要在整个项目中使用它,您可以创建一个基本控制器并在那里初始化会话库,然后将所有控制器扩展到该基本控制器
你可以这样做:
<?php
class MY_Controller extends CI_Controller {
$this->load->library('session');
}
就CodeIgniter而言,会话只是一个包含以下信息的数组: 用户的唯一会话ID这是一个具有很强熵的统计随机字符串,使用MD5散列以便于移植,默认情况下每五分钟重新生成一次 用户的IP地址 用户的用户代理数据包含浏览器数据字符串的前120个字符 最后一个活动时间戳。 上述数据存储在cookie中,作为具有此原型的序列化数组:
[array]
(
'session_id' => random hash,
'ip_address' => 'string - user IP address',
'user_agent' => 'string - user agent data',
'last_activity' => timestamp
)
正在检索会话数据:
$this->session->userdata('session_id');
有一件事你必须使用:
->手动导入会话库的步骤
$this->load->library('session');
->或者在application/config/autoload.php中添加“session”,如下所示:
$autoload['libraries'] = array('database,session');
注意:您可以像逗号分隔的值一样直接包含库。此值是否适用于整个项目?会话类是否可用。
$this->load->library('session');
$autoload['libraries'] = array('database,session');