0

Cookie が既に存在する場合、チェックするホーム関数の CI プロジェクトがあります。その場合、ユーザーをリダイレクトする必要があります。これは、たとえば、私の Linux マシン (Chrome) では正常に機能しますが、Mac (Chrome) では機能しません。理由はわかりません。

これはコードです:

$session = $this->session->all_userdata();

        if(array_key_exists('id', $session)) {
            redirect(site_url("loggedin"), "refresh");
        } else {
            /* set cookie */

ありがとう

4

1 に答える 1

0

まず、どちらarray_key_exists()が優れているかどうかはわかりませんisset($_SESSION['id'])が、どちらの方法でも CI にはsession->userdata()関数が組み込まれておりFALSE、値が設定されていない場合に返されます。

if($this->session->userdata('session_id'))
    redirect('loggedin',"refresh");

//rest of code

site_url()また、関数には必要ないことに注意してくださいredirect()。CI はデフォルトでそれを行います。ただし、それがあなたの問題と関係があるかどうかはわかりません。ブラウザのバグかもしれません。redirect('loggedin');(場所のリダイレクトを使用する)は機能しますか?

于 2013-01-09T19:59:20.143 に答える