为什么会话无法在CI中登录时启动

时间:2018-01-15 05:40:17

标签: php sql codeigniter session

为什么会话无法在CI登录时开始,每当我输入错误的信用卡时,我都输入了正确的凭证。它显示错误的用户名和密码错误"

这是我的代码:

if(($result_data->user_email==$username)&&($password_enc==$result_data->user_pass)){ 
    $this->load->model('password','password');
    $role=$this->password->get_user_details($result_data->user_email);
    $user_status=$role->user_status;
    $user_status = intval($user_status);
    //var_dump($user_status);
    if($user_status==1){
    @session_start();
    //$_SESSION['admin_id']=$row[0]->ID;

    $_SESSION['admin_id']=1;
    echo $_SESSION['admin_id'];
    $_SESSION['role']=$role->role;
    $_SESSION['main_id']=$role->ID;
} else {
    echo 1;
    //die();
}

3 个答案:

答案 0 :(得分:0)

您可以针对您的问题尝试此解决方案:

设置会话:

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

if($user_status==1){
   $this->session->set_userdata(array(
    'admin_id'  => 1,
    'role' => $role->role,
    'main_id'  => $role->ID,
  ));
}

获取会话值

echo $this->session->userdata('admin_id');
echo $this->session->userdata('role');
echo $this->session->userdata('main_id');

我希望它会有所帮助。

答案 1 :(得分:0)

您使用核心php进行会话存储而不是codeigniter会话。您必须加载会话库。我给你完整的代码,以适当的方式创建和删除会话。您必须添加此代码并根据需要使用它(因为我也提供了未设置)。试试这样:

<?php
//load session library
$this->load->library('session');
// set array of items in session
$arraydata = array(
        'admin_id'  => 1,
        'role'=> $role->role,
        'main_id'=>$role->ID
);
$this->session->set_userdata($arraydata);

/**** GET SESSION DATA ****/
echo "Admin id: ". $this->session->userdata('admin_id');
echo "Role: ". $this->session->userdata('role');
echo "Main id: " . $this->session->userdata('main_id');

// get e'thing stored in session at once
echo '<pre>';
print_r($this->session->userdata());

/**** REMOVE SESSION DATA ****/
// unset specific key from session
$this->session->unset_userdata('admin_id');
$this->session->unset_userdata('role');
$this->session->unset_userdata('main_id');

// unset multiple items at once
$keys = array('admin_id', 'role','main_id');
$this->session->unset_userdata($keys);

echo '<pre>';
print_r($this->session->userdata());
?>

答案 2 :(得分:0)

 $array = array(
        'admin_id'  => 1,
        'role'=> $role->role,
        'main_id'=>$role->ID
    );  
  $this->session->set_userdata($array);

  echo $this->session->userdata('admin_id');
相关问题