0

我在我的网站上创建了一个 Facebook 登录,然后当我获取登录用户的数据时,我创建了一个数组会话来将用户的信息存储在我的控制器中。

当我转到另一个页面时,我的会话有问题,我的会话丢失了,我不知道这会发生什么?

我这样设置会话:$this->session->set_userdata('fb_user_info', $user_info);

但是,我自己的帐户登录,我做同样的方式,它适用于所有页面。

我的问题是,为什么会话会丢失?

这是我在获取 user_info 时设置会话的代码

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Account extends CI_Controller {

public function __construct()
{       
    parent::__construct();
    //$this->authenticate();

    // Facebook constructor code
        $CI = & get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        $this->load->library('facebook', $config); 
    public function index() 
    {       
        $user = $this->facebook->getUser();

        if($user) {

            try {

                $user_info = $this->facebook->api('/me');

        // Set session

            $this->session->set_userdata('FB_SESSION_INFO', $user_info);

                    $args = $logout_url;

            $data['getLogoutUrl'] = $this->facebook->getLogoutUrl($args);

        } catch(FacebookApiException $e) {
                echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
                $user = null;
            }
        } else {

            $param = array('scope' => 'email','redirect_uri' => $mycurrent_url);

            $data['getURLLogin'] = "<a href=\"".$this->facebook->getLoginUrl($param)."\">Login with facebook</a>";

    }
}
4

0 回答 0