【发布时间】:2015-07-07 06:08:44
【问题描述】:
我希望用户在未设置会话时不要访问控制器的某些方法。为此,我可以检查所有方法中的会话,如果设置了会话,则仅继续前进,否则重定向到特定页面。由于我有很多方法,如果未设置会话,我不希望用户访问。它的大部分内容是通过所有方法和检查会话。有没有捷径可以获取这个功能。
我尝试检查会话是控制器的构造方法,但它适用于所有方法。但是如果没有设置会话,我只想阻止特定的方法。怎么做。
例子:
class dashboard extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->model('dbmodel');
$this->load->helper('url','form');
//verified user check
if($this->session->userdata("unverified") != FALSE) {
redirect("verify_user");
}
}
//verified user check
}
以上代码,当用户转到仪表板控制器时,一旦发现“未验证”会话,就会重定向到 verify_user 控制器。但我想访问仪表板控制器的某些方法。不是所有的方法。每当找到会话并且不授予对仪表板控制器的任何方法的访问权限时,此代码都会重定向。
【问题讨论】:
-
添加一些与您的问题相关的代码
-
我添加了与我的问题相关的代码
-
你使用哪个 CI 版本???
-
Codeigniter 2.2 版
-
最好在 constructor 中检查会话,但是如果您想访问其他函数的某些会话,则必须对每个函数设置条件。例如
function __construct() { parent::__construct(); } function chk_login(){ if($this->session->userdata('logged_in')){ echo "some action"; }else{ redirect('login'); } }
标签: php codeigniter session