0

コードイグナイターを使用しています。私はすでにアクセス許可レベルphpmysql使用中のセッションを持っています。登録した管理者がアクセスレベルに応じて閲覧できるページを制限したい。各管理者 (それぞれid_relationが管理者用) のデータベースに画像としてあります:

ここに画像の説明を入力

上記のデータベース テーブルの各番号は、たとえばページです: (値のサブページとサービス列は ですjson)

メインページ: 1is page 13is page 35is page 5and ...

PHP: (やってみました)

$result = $this->db->get_where('access_level', array('id_relation'=>'6572242cc91f61b2f722e31ec55e3c7c'));
$data = array();
foreach($result->result() as $row){
    $data[] = $row->mainpage;       
}

if(in_array('1', $data)){
    echo 'access';
}else{
    echo 'not access';
} // out put is access

独自のページsubpageを持つ 3 行のアクセス許可を設定するにはどうすればよいですか? mainpage 1たとえば、上記のデータベースにあります。

id1ユーザーはmainpageページにアクセスでき1、このメインページ (ページ 1) ではサブページのページ 3 、4 、6 にアクセスでき、各サブページではサービス 110 にアクセスできます (それらはチェーンのように一緒に接続されています)。

残りの行も同様です。私のhtmlは次のとおりです:http: //jsfiddle.net/pbNt3/および挿入データの私のphpは次のとおりです:http: //pastebin.com/HpztqSwV

任意のページ (メインページとサブページ) およびそのサブページ内のサービスへのユーザー アクセスを PHP で許可するにはどうすればよいですか?

4

1 に答える 1

0

データベースに対してクエリを実行して、WHERE mainpage=1から何かが返されるかどうかを確認するのはどうですか。

例 :

SELECT......
FROM........
WHERE (your database flag) = ..........

アプリケーションにも同じ設定があります。私には、学生、スタッフ、管理者の3つの役割があります。次に、ifelseステートメントを使用します。今、あなたのDBについての私の理解から、カーテンの人々だけがページ、サブページ、およびサービスにアクセスできます。これは、クエリを実行して、

return $whateveryou...

例2:

function staffmember()
    {
        $username1 = $this->session->userdata('username');
        $sql1 = "SELECT * FROM users WHERE username = :user AND activated = 1";
        $staffmember = $this->db->conn_id->prepare($sql1);
        $staffmember->bindParam(':user', $username1);
        $staffmember->execute();
        $row = $staffmember->fetch();

        if($row['staffmember'] == 1)
        {
            return $staffmember;
        }
    }


    function is_admin()
    {
    $username = $this->session->userdata('username');
    $sql = "SELECT * FROM users WHERE username = :user";
    $is_admin = $this->db->conn_id->prepare($sql);
    $is_admin->bindParam(':user', $username);
    $is_admin->execute();   
    $row = $is_admin->fetch();

        if($row['admin'] == 1)
        {
            return $is_admin;
        }
    }

したがって、コントローラーで次のことを行います。

function index()
    {
        $this->load->model('staff_model');
        if($staffmember = $this->staff_model->staffmember()) //Checks for staff value == 1 
        {
            if($is_admin = $this->staff_model->is_admin()) // Checks for admin value == 1
        {
            $data3['main_content'] = 'admin_view';
            $this->load->view('includes/template', $data3);
        }else{ // If not admin == 1 
            $data['main_content'] = 'staff_homepage_view';
            $this->load->view('includes/template', $data);
        }
        }else{ // If not staff == 1
            $data1['main_content'] = 'student_homepage_view';
            $this->load->view('includes/template', $data1); 
        }

}

うまくいけば、これから何かを利用することができます。

于 2013-02-17T12:14:04.713 に答える