3

ユーザーがさまざまなモジュールにアクセスするためにログインする必要があるアプリケーションを作成しています。各モジュールへのアクセスを提供する前に、ユーザー セッションが存在するかどうかを確認する必要があります。

現在、不正なアクセスを避けるために、各関数/モジュール/コントローラーでこのようなセッションをチェックしています。

if($this->session->userdata('userId')!=''){
   do something;  }

これを行うより良い方法はありますか?のような一般的な機能を持つことはできますか

sessionExist();

プロジェクト全体に共通のモジュール/コントローラー/関数から呼び出すことができますか?

その場合、どこからでも呼び出せるように、この共通関数をどこに記述すればよいでしょうか。

4

5 に答える 5

4

ヘルパー関数が必要な場合は、次のとおりです。

if ( ! function_exists('sessionExist'))
{
    function sessionExist(){
        $CI =& get_instance();
        return (bool) $CI->session->userdata('userId');
    }
}

ファイルを保存して、ファイルにapplication/helpers/含めapplication/config/autoload.phpます。

$autoload['helper'] = array('my_helper_file');
于 2013-07-31T16:00:10.833 に答える
1

作成したライブラリまたは別のライブラリに関数を作成できます

元:application/libraries/Common.php

public function logged_in()
{    
   return (bool) $this->session->userdata('userId');
}

次のように使用します。

if ($this->common->logged_in()) {
   // User logged
} else {
   // User not logged
}
于 2013-07-31T13:42:56.570 に答える
0
if ( ! function_exists('sessionExist')) 
{
function sessionExist(){
$CI =& get_instance();
$userId = $CI->session->userdata('userId');
if(empty($userId)){
redirect(base_url('login'));
}else{
return (bool)$userId;
}
}
}
于 2016-10-24T06:43:48.320 に答える