0

ユーザー登録機能を持つ Web アプリケーションに codeigniter を使用しています。また、ページをロードするためのほとんどの場所で ajax を使用しています。問題は、ページをロードするために ajax を介して何らかの関数が呼び出され、セッションが存在しない場合、ログイン ページにリダイレクトされないことです。しかし、ブラウザから同じ URL にアクセスすると機能します (ログイン ページにリダイレクトされます)。この問題を解決するにはどうすればよいですか?

これは、使用しているセッションを確認するためのコードです。

    $userid=$this->phpsession->get('userid');
    if(!($userid))
    { 
        redirect('home','refresh');
    }
4

1 に答える 1

1

コントローラーで、それが ajax リクエストであるかどうかを検出します。

if($this->input->is_ajax_request())
{
    $userid=$this->phpsession->get('userid');
    if(!($this->usermodel->is_user($userid)))
    { 
        echo "1";
    }
}

ajax で応答を検出し、ログイン ページにリダイレクトします。

$.post('index.php/login', function(data){

if(data == "1")
{
document.location.href = <?php echo site_url("home"); ?>;
}

});
于 2012-05-15T12:42:26.980 に答える