gpt4 book ai didi

php - CodeIgniter 始终运行此代码

转载 作者:可可西里 更新时间:2023-11-01 00:35:50 26 4
gpt4 key购买 nike

我需要针对每个请求运行一些代码,始终取决于用户是否登录。

我应该把这段代码放在哪里?

有没有可能我可以传递数据,这段代码:

 public function __construct()
{
parent::__construct();

$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->load->library('security');
$this->load->library('tank_auth');
$this->lang->load('tank_auth');
$this->load->model('users_model');

if ($this->tank_auth->is_logged_in())
{
$data = $this->users_model->get_userinfo($this->tank_auth->get_username());

if ($data['exp'] >= $data['max_exp']) {

$new_data = array(
'exp' => $data['exp'] - $data['max_exp'],
'level' => $data['level'] + 1,
);

$this->db->where('id', $data['id']);
$this->db->update('users', $new_data);

echo 'Hello?';
}
}
}

这是核心类中的 MY_Controller。我可以进一步传递这些数据吗?我想,重新抓取所有数据,在真实类里面重新抓取一遍,感觉没必要。

最佳答案

在核心文件夹下创建一个类,然后让所有 Controller 扩展该类。

我做了一个与您描述的非常相似的登录系统。

这是核心文件夹中的一个类:

class MY_Controller extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->library('cart');
$this->load->library('session');
$this->load->library('pagination');

$this->load->helper('form');
$this->load->library('form_validation');
if (!$this->session->userdata('loggedin')){
redirect('/sessions/log_in/','refresh');
}
}
}

注意:确保您的配置正确设置继承前缀

然后 Controller 文件夹中的 Controller 将扩展 My_Controller

有关分层登录或更详细的示例,请参阅我的旧问题:

Codeigniter: Controlling log in privileges with inheritance

还有我的教程基于:

http://davidwinter.me/articles/2009/02/21/authentication-with-codeigniter/

关于进一步传递数据的回答:使用 session 类?

http://codeigniter.com/user_guide/libraries/sessions.html

$this->load->library('session');
$this->session->userdata('fieldName') = 1;//*appropriateValue*;
//Call this in another class
echo $this->session->userdata('fieldName');

关于php - CodeIgniter 始终运行此代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986729/

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