我创建了一个用户登录和注销系统。登录后,用户将被重定向到他的仪表板。目前,在正确的URL的帮助下,用户无需登录即可直接进入仪表板。为了限制这一点,我使用了以下代码,以便用户在登录前无法访问任何内部页面
class User extends CI_Controller
{
public function __construct()
{
parent::__construct();
if(!$this->session->userdata('logged_in'))
{
$this->session->set_flashdata('no_access', 'sorry you are not allowed');
redirect('user/noaccess');
}
}
}
现在,当我尝试使用正确的URL访问仪表板时,如果没有登录,我无法查看它,但也没有重定向到noaccess。我收到以下错误
页面未正确重定向
任何人都可以告诉你如何正确地做到这一点
答案 0 :(得分:0)
Sam考虑这样做
public function logged_in()
{
$logged_in = $this->session->userdata('logged_in');
if (!isset($logged_in) || $logged_in != true)
{
redirect("Checkin"); //insert your login page
}
}
然后在您的控制器中进行页面访问,您可以调用此方法
public function admin()
{
$this->logged_in();
//rest of controller here
}
这可以防止任何人在未登录的情况下访问您的管理页面。 " logged_in"方法会将它们重定向到登录页面。这样你就不会重定向到另一个页面(user / noaccess)或使用flashdata。使用$ this-> logged_in();在任何需要登录的方法