我想问这个问题,如果我们如何做一个会话代码点火器,特别是在登录和注销帐户。我想知道一步一步的代码点火器的MVC
在登录时,在set_userdata函数中执行查询后设置会话数据,并传递要设置的数据数组
$this->session->set_userdata('session data here');
在登出时,你必须调用unset_userdata函数并传递你必须在登录时设置的数组的数组。
$this->session->unset_userdata('session data here');
使用我的代码为例,你可以这样做,我有一个名为iris.php的控制器和一个名为script.php的模型。我使用虹膜来调用和使用脚本模型。
class Iris extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('script');
$this->load->model('alert');
}
public function index()
{ $this->load->view('index');
}
public function login_in()
{
$login = $this->script->check_login();
if($login->num_rows() == 1){
foreach ($login->result_array() as $row) {
$newdata = array(
'fullname' => $row['fullname'],
'email' => $row['email'],
'member_id' => $row['member_id'],
'transtatus'=>$row['transtatus']
);
$this->session->set_userdata($newdata);
}
redirect('iris/user_home');
}else
{
$data = array('alert'=>$this->alert->log_alert());
$this->load->view('common/header');
$this->load->view('login',$data);
$this->load->view('common/footer');
}
}`
i首先在构造函数下加载模型脚本模型,并在虹膜控制器的登录函数中调用脚本$login=$this->script->check_login();
中的函数在script.php中,我们有以下代码:
{public function check_login(){
$email = $this->input->post('email');
$password = $this->input->post('password');
$query = "SELECT * FROM `iris_user`
WHERE`email`=? AND`password`= ? ";
$result = $this->db->query($query, array($email, $password));
return $result;
}
记住,你必须从application/config/autolload .php文件中加载会话类帮助器
$autoload['libraries'] = array('database', 'session');
会话总是在自动加载后启动,但可能在创建注销功能时被销毁。还要注意,在添加会话数据变量以访问会话变量时,必须使用声明会话变量时使用的名称。例如,要访问全名,可以在代码
中这样做echo $_SESSION['fullname'];
在控制器加载库会话中:
$this->load->library('session');
使用下面的语句创建会话:
$this->session->set_userdata("session_name",session_value);
For Session Unset:
$this->session->unset_userdata("session_name");