1

現在のユーザーセッション(存在する場合)を取得し、それをデータベースと比較して、loggedIn値= 1(loggedInを意味する)を取得し、このwhere句に一致する単一の行が存在することをカウントしようとしています。それが存在する場合は、ログインしていることを表示します。そうでない場合は、ログインフォームを表示します(if{} else{}以下に表示)

次の関数を持つモデルがあります。

function check_if_loggedin(){
    #get user session id from db.
        $sess = $this->session->userdata('session_id');
    #set numerical value of successfully logged in equal 1
        $loggedInSetSuccess = 1;
    #compare session id to match in db (can only have only 1 match)
        $sessionsDbCompare = $this->db->get_where('Client',array('session_id'=>$sess,'loggedIn'=>$loggedInSetSuccess));

    if($sessionsDbCompare->count_all_results() = 1) {
    # User has valid session(valid sessID+loggedIn=0, show welcome
        echo 'Logged in baby';
        # show account pref   
    }
    else{
      # user doesnt have both a valid session and loggedIn is set to 0, show login form
      echo 'login form here';
    }  
}

問題は、またはif($sessionsDbCompare->count_all_results() = 1) {を使用している場合、IDeが警告を発していることです。申し訳ありませんが、これは少し初心者です。count_all_results()は関数であるため、少し混乱していると思います。(私は "1" == "01"のような比較演算子を理解しています)count_all_results() == 1count_all_results() === 1

4

4 に答える 4

3

==if ステートメントが次のようになるように使用する必要があります。

if($sessionsDbCompare->count_all_results() == 1) { ... 

いつでもvar_dump($sessionsDbCompare->count_all_results());or に似たものを使用して、返された値を確認できます...

于 2012-11-09T02:22:02.607 に答える
1

あなたはこれを使うべきです

count_all_results() == 1

あなたが持っている方法は、残っているものに1を割り当てることです

IDE は、count_all_results() が false と 0 を返すことも懸念しています。そのため、3 つの === を提案していますが、心配する必要はありません。2つの等しいものはそれを修正します

于 2012-11-09T02:21:26.447 に答える
1

この行:

if($sessionsDbCompare->count_all_results() = 1) {

次のようにする必要があります。

if($sessionsDbCompare->count_all_results() == 1) {
于 2012-11-09T02:21:42.453 に答える