0

私はモデルを持っています:

<?php

class Loginfunctionmodel extends CI_Model{
    function __construct()
    {
        // Call the Model constructor
        parent::__construct();

    }

    # check_if_loggedin() below checks if user has session w/ loggedIn=1, then displays needed supernav elements
    function check_if_loggedin(){
        $this->load->library('session');
        # user has loggedin Val = 1 and valid session_id
        $loggedInSetSuccess = 1;
        $sess = $this->session->userdata('session_id');
        $sessionsDbCompare = $this->db->get_where('Client',array('session_id'=>$sess,'loggedIn'=>$loggedInSetSuccess));
        // no session id for user in database... load login
        if($sessionsDbCompare->num_rows() == 1 ){
                $this->load->view('supernavigationloggedin.php');
                $this->load->view('primarynavigation.php');        
        }
        // otherwise problem with session count for the user is greater than 1.
        // Regenerate values
        elseif($sessionsDbCompare->num_rows() > 1){
            #remove current errorneous [session_id] data
                $this->session->unset_userdata();
            #reset [session_id] data
                $this->session->set_userdata();
            # load logged in views, given single session id exists.
                $this->load->view('supernavigationnotloggedin.php');
                $this->load->view('primarynavigation.php');               
        }

        // otherwise problem with session or loggedIn ... show login form.
        else{
            #remove current errorneous [session_id] data; load not logged in views.
            $this->session->unset_userdata();
            $this->load->view('supernavigationnotloggedin.php');
            $this->load->view('primarynavigation.php');     
        }

    }

}
?>

問題は、このページにアクセスlocalhost/mysiteすると、次のビューが読み込まれることです。homepage.phpこのモデル(上記)homepagemodel.phpもloadsと呼ばれますが、ページを読み込むとすぐにセッションが作成されます。どうすればそれをif{} block実行するだけで済みますか?の中に入れると、if{} blockを使用してセッションが時間内に作成されません$this->load->library('session');

誰?私はこれに対してさまざまな修正を試みてきましたが、重複したセッション値で重複した行を作成し続けます

4

1 に答える 1

0

さて、これがあなたが必要とするものであるかどうかはわかりませんが、ここに行きます...

function check_if_loggedin()
{        
    $is_logged = $this->session->userdata('loggedIn');
    $sess = $this->session->userdata('session_id');
    $sessionsDbCompare = $this->db->get_where('Client',array('session_id'=>$sess));

    if ($is_logged == 1 && $sessionsDbCompare->num_rows() == 1)
    {
        $this->session->set_userdata('loggedIn', 1);
        $this->load->view('supernavigationloggedin.php');
        $this->load->view('primarynavigation.php');
    }
    else
    {
        $this->session->unset_userdata();
        $this->load->view('supernavigationnotloggedin.php');
        $this->load->view('primarynavigation.php');  
    }
}
于 2012-11-12T05:35:29.487 に答える