我想设置会话ID

时间:2016-04-20 05:02:39

标签: php codeigniter api

public function admin_login()
{
    $this->form_validation->set_rules('email','E-mail','required|trim');
    $this->form_validation->set_rules('password','Password','required');
    $this->form_validation->set_error_delimiters("<p class='text-danger'>"," </p>");
    if( $this->form_validation->run())
    {
            $email=$this->input->post('email');
            $password=$this->input->post('password');
            $link='http://api.amid.tech/admin/'.$email.'/'.$password;
            $data = (array) json_decode(file_get_contents($link,true));
            if($email== $data['email'] && $password== $data['password'])
             {
            var_dump($data = (array)  json_decode(file_get_contents($link,true)));
            echo $userid=$this->session->set_userdata('name',$data);
            exit;
            $this->load->view('admin/dashboard');
             }
            else
             {
            // echo"false";
            $this->load->view('index');
            //echo validation_errors('');
             }
    }
}

我想通过api

在此代码中设置会话ID

2 个答案:

答案 0 :(得分:1)

Codeigniter 2.X的会话管理不是在PHP会话之上实现的。因此,如果您尝试打印$_SESSION,它将显示一个空数组。相反,您应该使用$this->session->userdata('key')。但是,如果您使用CI 3.X,$_SESSION应该可以正常工作。

看看这个: https://www.codeigniter.com/userguide3/installation/upgrade_300.html#step-6-update-your-session-library-usage

答案 1 :(得分:0)

不完全确定您想要什么,但如果您已经参考过CI的用户指南,那么这可以帮助您设置会话并将其保存在数据库中。

首先加载会话库:

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

现在如果你在变量中有一些值并希望将它存储到会话中,那么你可以这样做:

 $this->session->set_userdata('string', $variable);

如果有一组数据,那么如用户指南中所述:

$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );

$this->session->set_userdata($newdata);

如果您想要会话中的特定项目,那么您可以这样做:

echo $this->session->userdata('session-variable-name');

对于所有会话数据,请执行以下操作:

var_dump($this->session->all_userdata());

如果您想将会话保存到数据库,那么只需创建一个名为ci_sessions

的表
CREATE TABLE IF NOT EXISTS  `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)

);

像这样。

  

我建议你阅读user guide它还有很多。