私はcodeigniterが好きなので、codeigniterにPHP facebook SDK/APIを統合しようとしていますが、何らかの理由でベースURLからページを変更するとすぐにFacebookのセッションが失われてしまいます。$ _sessionこれはなぜ起こっているのですか?Array([fb_339393762762289_state] => cb8c201ed66ebcaa60407114aa92f001)私は、APIのソースコードから理解できることは、それが処理セッションを担当しているということですので、私は理由を理解していないからページの変更に関するセッションが失われるのはなぜですか?
class Main extends CI_Controller {
var $user;
var $log_in_url;
var $log_out_url;
function __construct() {
parent::__construct();
$this->load->library('facebook');
$perams = array(
'scope' => 'user_about_me, read_friendlists',
'redirect_uri' => 'http://www.example.com/'
);
$this->user = $this->facebook->getUser();
$this->log_out_url = $this->facebook->getLogoutUrl();
$this->log_in_url = $this->facebook->getLoginUrl($perams);
print_r($this->user);
print_r($this->log_out_url);
print_r($this->log_in_url);
}
public function index() {
if ($this->user) {
try {
$data['user_profile'] = $this->facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$this->user = null;
}
}
if ($this->user) {
$data['logout_url'] = $this->log_out_url;
} else {
$data['login_url'] = $this->log_in_url;
}
$data['user'] = $this->user;
$this->load->view('templet/header', $data);
$this->load->view('main view');
$this->load->view('templet/footer');
}
public function account() {
if ($this->user) {
try {
$data['user_profile'] = $this->facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$this->user = null;
}
}
if ($this->user) {
$data['logout_url'] = $this->log_out_url;
} else {
$data['login_url'] = $this->log_in_url;
}
$data['user'] = $this->user;
$this->load->view('templet/header', $data);
$this->load->view('account');
$this->load->view('templet/footer');
}
:ここ
は私のコントローラは次のようになりますそれはそれを失うことを続ける。
私はそれが私のHtaccessの設定と関係があるかもしれないと思っていました。私のページを変更するときのURLは、次のようになります。www.example.com/index.php/controller_name/method_name/
また、私は$ _GET varsで何かする必要がありますか?それは私が気付いたことの一つです。URLにはいくつかのものがあるようですが、他のページには続きません。
これについての助けがあれば幸いです。私は本当に迷っています。
他の$ _SESSION変数(自分で設定した変数)を同じ方法で緩めますか、またはFBだけを緩めますか? – Cheery
自分のセッションをまだ設定しようとしていません。私にそのアイデアをくれてありがとう。私はそれを確認することさえ考えなかった。私は自分のものを設定しようとします。なぜ私の変数はコントローラ上でグローバルなスコープを持っているので、1つのページから別のページにデータを保持していないのですか?データはまだそこにあるはずです。 –
ちょうどチェックされ、セッションは正常に動作します。私がCI関数を使ってそれらを行う場合...私は、CI関数を使用するようにFacebook SDKを適応させるべきだと思いますか? –