通过php限制访问管理区域

时间:2013-02-17 05:07:29

标签: php codeigniter

我使用codeigniter。我已使用会话拥有权限访问级别phpmysql。 我想限制注册管理员可以查看的页面,具体取决于他的访问级别。我在数据库中为每个管理员(每个id_relation是管理员)作为图像:

enter image description here

上述数据库表中的每个数字都是一个页面,例如:(值子页面和服务列为json

主页中的

1page 13page 35page 5并且......

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的三行设置mainpage 1的权限?例如在上面的数据库中。

在身份1中,mainpage中的用户可以访问页面1,并且在此主页(第1页)中,他可以访问子页面和每个页面中的第3,4,6页他可以访问服务110的子页面。(它们像链一样连接在一起。)

它也适用于其他行。 我的html为:http://jsfiddle.net/pbNt3/我的插入数据的php为:http://pastebin.com/HpztqSwV

如何允许用户通过php访问其子页面中的任何页面(主页和子页面)和服务?

1 个答案:

答案 0 :(得分:0)

如何针对您的数据库运行查询,以查看WHERE主页= 1是否返回了某些内容。

示例:

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

我的应用程序设置相同。我有3个角色,学生,员工,管理员。然后我使用if else语句。现在,根据我对您的数据库的理解,人们可以访问页面,子页面和服务。这可以通过简单查询和查看

来完成
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); 
        }

}

希望你可以从这里拿走一些东西。