use*_*153 17 php session codeigniter
我希望用户在未设置会话时不访问控制器的某些方法.为此,我可以在所有方法中检查会话,如果设置了会话,那么只需转到其他地方重定向到特定页面.由于我有很多方法,如果没有设置会话,我不希望用户访问.它的批量通过所有方法和检查会话.有没有任何快捷方式来获得此功能.
我试过检查会话是控制器的构造函数方法,但它适用于所有方法.但我只想要特定的方法来阻止会话未设置.怎么做.
例:
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
}
Run Code Online (Sandbox Code Playgroud)
上面的代码,当用户转到仪表板控制器时,一旦找到"未验证"会话,就会重定向到verify_user控制器.但是我希望能够访问仪表板控制器的某些方法.不是所有方法.每当发现会话时此代码重定向,并且不允许访问仪表板控制器的任何方法.
sha*_*fiq 13
检查这可能会对你有所帮助
class MY_controller extends CI_controller{
function __construct() {
parent::__construct();
}
function _required_user($params =array()){
$action =$this->router->fetch_method();
if(empty($params['except']))
$params['except'] =array();
if(empty($params['only']))
$params['only'] =array();
if(count($params['except']) > 0 && in_array($action,$params['except']))
return true;
if(count($params['only']) > 0 && in_array($action,$params['only']) && $this->session->userdata('is_login'))
return true;
if($this->session->userdata('is_login'))
return true;
redirect('login');
}
}
class dashboard extends MY_Controller {
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->model('dbmodel');
$this->load->helper('url','form');
$this->_required_user(array('except'=>array('index')))
}
function add(){
/*
Session required
*/
}
function edit(){
/*
Session required
*/
}
function index(){
/*
no session required
*/
}
}
class content extends MY_Controller{
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->model('dbmodel');
$this->load->helper('url','form');
$this->_required_user(array('only'=>array('index')))
}
function add(){
/*
no Session required
*/
}
function edit(){
/*
no Session required
*/
}
function index(){
/*
session required
*/
}
}
class Myaccount extends MY_Controller{
function __construct() {
parent::__construct();
/*
for all functions session required
*/
$this->_required_user()
}
function edit(){
/*
session required
*/
}
function save(){
/*
session required
*/
}
}
Run Code Online (Sandbox Code Playgroud)
您可以根据需要修改_reuired_user函数
| 归档时间: |
|
| 查看次数: |
1478 次 |
| 最近记录: |