我有一个用codeigniter编写的网站。我的网站有2级。在codeigniter的所有网站页面验证用户
- 管理
- 用户
登录时的用户我的网站没有任何错误,并正常工作,但是当我不注销,并在浏览器中,用户可以访问输入管理面板网址管理面板选项,并相反。
如何解决这个错误。
我有一个用codeigniter编写的网站。我的网站有2级。在codeigniter的所有网站页面验证用户
登录时的用户我的网站没有任何错误,并正常工作,但是当我不注销,并在浏览器中,用户可以访问输入管理面板网址管理面板选项,并相反。
如何解决这个错误。
这是我用自己: 将它添加到控制器顶部的“类欢迎扩展是CI_Controller {”
public function login_check($user){
if(isset($_SESSION['user']))
{
if($_SESSION['user'] == $user)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
下,并创建你的页面的功能是这样的:
public function index()
{
if($this->login_check('admin'))
{
$this->load->view('welcome_message');
}
else
{
//Redirect here.
}
}
用我创建的用户名创建一个库。
class Users
{
public function __construct()
{
$this->ci =& get_instance();
}
function _is_admin()
{
if($this->ci->session->user_type != 'admin')
{
redirect('verify_user');
}
}
function _is_user()
{
if($this->ci->session->user_type != 'user')
{
redirect('verify_user');
}
}
}
加载库或者把它自动加载在application/config/autoload.php
然后,只需调用函数在要限制哪一个你的方法上。
function abc()
{
$this->users->_is_admin();
// your code
}
如果你想限制控制器的所有方法,那么在添加此方法Constructor
您应该使用_remap功能控制器来处理所有的请求,并在此功能,您应该有两个主要部分,第一用于管理员功能,第二个用于其他人...
在数据库中设置用户类型,并在会话中检查管理页面(如果登录用户是管理员) – Poria
对管理员和用户使用单独的会话变量。 –
用户类型已设置。类型为url的用户可以访问所有管理面板选项。这种方式必须检查所有页面。有另一种方法吗? @poria –