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答案 0 :(得分:1)
Codeigniter 2.X的会话管理不是在PHP会话之上实现的。因此,如果您尝试打印$_SESSION
,它将显示一个空数组。相反,您应该使用$this->session->userdata('key')
。但是,如果您使用CI 3.X,$_SESSION
应该可以正常工作。
答案 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它还有很多。