2017-04-18 18 views
0

URLから取得したXMLからデータを取得していることを知っていますが、それをエコーし​​てみると完全に正常です。しかし、そのデータをセッションのユーザーデータに入れようとすると、セッションに追加されません。以下は私のコードです:Codeigniterで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

さて、私はさらに研究しました。私が見つけたのは、取得したデータを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

関連する問題