gpt4 book ai didi

php - 仅限管理员用户的 CodeIgniter 限制页面

转载 作者:可可西里 更新时间:2023-11-01 00:08:49 25 4
gpt4 key购买 nike

我正在将 Code Igniter 用于 Web 项目。

我有两个不同的用户,一个基本用户和一个管理员用户。

我通过在我的数据库中有一个名为 admin 的列来区分管理员用户和基本用户,该列等于"is"或“否”

我有两个 Controller ,一个 Controller 纯粹用于登录身份验证 (login.php),另一个用于网页管理等 (site.php)。

我想让页面只对管理员用户可用。这是我的登录 Controller 中的代码片段,它目前在成功登录后重定向我的用户以及设置 session 数据..

   if ($this->input->post('btn_login') == "Login")
{
//check if username and password is correct
$usr_result = $this->login_model->get_user($username, $password);
if ($usr_result) //active user record is present
{
//set the session variables
$sessiondata = array(
'username' => $username,
'loginuser' => TRUE
);
$this->session->set_userdata($sessiondata);
if($usr_result->admin == 'Yes')
redirect("site/admin");
else
redirect("site/agent");
}

这是我的主 Controller 的一个片段,它管理我的页面等 (site.php):

public function admin(){
$data["title"]="My Admin";
$this->load->model("notifications");

if ($this->session->userdata('loginuser')){
$this->load->view("site_header");
$this->load->view("site_nav");
$this->load->view('adminpage', $data);
$this->load->view("site_footer");
} else {
redirect('site/restricted');
}
}

public function restricted(){
$this->load->view("restricted");
}

现在你可以从我上面的方法 admin() 代码片段中看到,我有一个 if 语句只允许登录用户登录到这个页面,否则显示受限页面。

我如何更改此代码以仅允许具有列 admin = Yes 的用户访问此页面?由于目前我的所有用户管理员或非管理员都可以访问此页面。

我希望这是有道理的,提前谢谢你!

最佳答案

在你的登录函数中:

//set the session variables
$sessiondata = array('user' => $usr_result); //This you'll be able to access all your user info at anytime.
$this->session->set_userdata($sessiondata);

在你的主 Controller 中:

if ($this->session->userdata('user') && $this->session->userdata('user')->is_admin == "Yes")

或者,更具可读性:

$myUser = $this->session->userdata('user');
if ($myUser && $myUser->is_admin == "Yes")

您不需要设置 'loginuser' => TRUE。如果有 session ,那是因为你的用户已经登录了。所以你只需要检查 session 是否设置,就可以知道你的用户是否登录了。

关于php - 仅限管理员用户的 CodeIgniter 限制页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28465009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com