无法将检索到的数据从XML保存到Codeigniter中的会话

时间:2017-04-18 09:34:53

标签: php xml codeigniter session

我知道我从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;

1 个答案:

答案 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