我知道我从URL中检索到的xml中的数据,我试图回应它并且它的工作非常好。但是,当我尝试将该数据放入会话用户数据时,它不会添加到会话中。下面是我的代码:
$username = $this->input->post("user");
$password = $this->input->post("pass");
$ip = $this->input->ip_address();
if(!$this->input->valid_ip($ip)){
$this->session->set_flashdata('failed','Login Failed! Error: Invalid IP');
redirect("lobby");
}
$url = "http://www.betclip.net/betclipapi/methods.asp?OperatorId=someID&key=somekey&action=login&username=".$username."&password=".$password."&ip=".$ip." ";
$opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0\r\n"));
$context = stream_context_create($opts);
$user_log = file_get_contents($url,false,$context);
$user_list = simplexml_load_string($user_log);
$code = $user_list->errorCode;
//$check_result = $this->Login_m->get_user($username, $password);
if($code == 0)
{
$data = array(
'login' => TRUE,
'id' => $user_list->accountid,
'username' => $user_list->username,
'symbol' => $user_list->symbol,
'balance' => $user_list->balance,
'ip' => $user_list->ip
);
$this->session->set_userdata($data);
$this->session->set_flashdata('welcome','Welcome ' . $this->session->userdata('Username') . '!');
redirect('lobby');
}
else
{
$this->session->set_flashdata('failed','Login Failed! Error: ' . $user_list->description . '');
redirect('lobby');
}
我错过了什么?我使用文件作为我的sess_driver:
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = BASEPATH . 'cache/sessions/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;
答案 0 :(得分:0)
好的,所以我进一步研究了。我发现你必须将检索到的数据从XML转换为字符串
$data = array(
'login' => TRUE,
'id' => (string)$user_list->accountid,
'username' => (string)$user_list->username,
'symbol' => (string)$user_list->symbol,
'balance' => (string)$user_list->balance,
'ip' => (string)$user_list->ip
);
我希望这可以帮助那些遇到同样问题的人。
此线程的致谢:here