2

Codeigniterのセッション クラスを使用して Cookie を作成し、セッション情報をデータベースに保存していますが、ブラウザー間で問題が発生しています。Firefox
を除くすべてのブラウザで、すべてが機能しているようです。このサイトは、ユーザーがログインした直後に追い出し続けます。何らかの理由でセッションが設定されないのではないかと思います。

何かアドバイスはありますか?
ウェブサイトはこちら: http://www.nanp.org .
以下のコード:

public function post() {
   $this->load->model('rbac/user');
   if($user = $this->user->user_by_column(array('email'=>$_POST['email'],'password'=>$_POST['password'],'verified'=>'true'))) {
      $this->session->set_userdata(array('user_id'=>$user->user_id));
      if($_POST['redirect']!='') {header('Location:'.$_POST['redirect']);}
      else {header('Location:members/dashboard');}
   }
   else {
      $this->data['php_error'] = 'Incorrect email or password.';
   }
}

これは私のセッション構成情報です:

$config['sess_cookie_name']     = 'nanpsession';
$config['sess_expiration']      = 2628000;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "/";
$config['cookie_secure']    = FALSE;
4

3 に答える 3

1

セッションが機能していないことをどのように確認できますか。セッション変数を印刷するか、これをエコーし​​てみてください。これが空の配列を返す場合は、セッションが機能していない可能性があります。

 echo  print_r($this->session->set_userdata());

セッションがFirefoxでのみ終了すると言っているので、セッション変数をリセットするために Firefox で何かを構成した可能性があります。

于 2013-01-18T04:41:07.477 に答える
1

2 equal signsifステートメントで試してください:

 public function post() {
   $this->load->model('rbac/user');
   if($user == $this->user->user_by_column(array('email'=>$_POST['email'],'password'=>$_POST['password'],'verified'=>'true'))) {
     $this->session->set_userdata(array('user_id'=>$user->user_id));
     if($_POST['redirect']!='') {header('Location:'.$_POST['redirect']);}
     else {header('Location:members/dashboard');}
   }
   else {
    $this->data['php_error'] = 'Incorrect email or password.';
   }
}

PHP If ステートメントでの 1 つの等号の意味の詳細については、こちら : A php if statement with one equal sign...? これは何を意味するのでしょうか?

于 2013-01-17T21:42:59.740 に答える
0

Firebugをインストールしましたか?問題を引き起こす可能性があります。Codeigniter アプリケーションでセッション変数を破壊する Firebug を参照してください。

于 2013-10-16T12:17:42.533 に答える