1

あるコントローラーから別のコントローラーにリダイレクトすると、codeigniter でコア php セッションが失われます。最初のコントローラーでは、値を割り当てると完全に機能します。また、最初のコントローラーでは、セッションは正しく処理されますが、別のコントローラーへのリダイレクト後にセッションが失われます。

最初のコントローラーは次のとおりです。

$_session['user'] = $data[0]['u_name']; // assign value to session 
echo $_session['user']  // works fine here and print user name
redirect("useraccount",'refresh'); // redirection to user account

useraccount.php コントローラーで動作しない

ここで2番目のコントローラー

public function index() {

    if(isset($_session['user']))
      echo $_session['user'];
    else 
      echo "no session";
    //$data['main'] = 'users/dashboard';
    //$this->load->view('index',$data);

} 

セッションを印刷していません。2 番目のコントローラーにリダイレクトした後、セッションを 2 番目のコントローラーに渡すにはどうすればよいですか?

注: codeigniter セッションではなく、コア php セッションを使用したい。

4

3 に答える 3

2

何か問題がありますか:

$this->session->set_userdata('user', $data[0]['u_name']);
于 2013-03-26T14:55:08.740 に答える
1

PHP 変数名は大文字と小文字が区別されます。そのはず

if (isset($_SESSION['user'])) {
            ^^^^^^^--- note: all CAPS
于 2013-03-26T14:34:34.640 に答える
1

プロパティを使用session_start()してコア php セッションにアクセスする

これを試して

public function index()    
{
   session_start();
   if(isset($_session['user']))
   echo $_session['user'];
   else 
    echo "no session";
   //$data['main'] = 'users/dashboard';
   //$this->load->view('index',$data);

} 
于 2013-03-26T14:58:48.057 に答える