请问codeIgniter中 一个php通过控制器生成好session后 其余的php验证该如何做呢?

发布于 2022-09-04 06:02:05 字数 99 浏览 14 评论 0

一个界面生成好session 添加键值后 其余的php首部 session_start(); 但是$_SESSION变量为空 不是说生成好后就存在cookie了么 为什么不能直接用呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

刘备忘录 2022-09-11 06:02:05

楼主啊,既然你说了是在框架中,而且还是CI中,那么就使用CI中定义好的session类操作配合来使用就好了(有些框架中是不支持使用某些php函数的,session_start()就是个例子)

  1. 载入session类 $this->load->library('session');

  2. 添加session数据 $this->session->set_userdata($array);

  3. 取得session值 $this->session->userdata('session_key');

  4. 取得所有session值 $this->session->all_userdata();

要养成多看文档的好习惯啊喂!~ 我是文档,点我点我点我


看来楼主对MVC模式不是很了解啊,简单点来说,输出页面(view)基本都要走控制器(controller),获取数据在控制器,进行数据处理一般在模型层(model)

控制器就像一个中间媒介一样,接收从页面(view)传递过的数据,然后根据这些数据调取模型层相应的数据出来,然后控制器调用模板(也就是页面)来进行的数据的渲染。

js里是很少调用控制器的,调用控制器就是使用控制器里面的方法,获取一些数据,这之中用的多的就是ajax。跳到另一个页面其实是通过html相应标签来实行的,这里举几个例子:

  1. html的a标签

  2. html的form表单

  3. js的location.href

嗯。以上,希望对你有帮助。

不忘初心 2022-09-11 06:02:05

一个简单的例子

验证登录:

public function login_check(){

    $user_id = $this->input->post('user_id');
    $password = $this->input->post('password');

    $sql = "SELECT * FROM users WHERE id = ? AND password = ?"; 
    $data['check'] = $this->db->query($sql, array($user_id, $password)) -> result_array();

    if(count($data['check']) > 0){
        $session['is_login'] = TRUE;
        $session['user_id'] = $data['check'][0]['user_id'];
        $session['user_name'] = $data['check'][0]['user_name'];
        $this->session->set_userdata($session);
        header("Location:".site_url('welcome'));
    }
}

判别登陆了没:

if($this->session->userdata('is_login')){
    
}else{
    redirect('login');
}

取得session值:

$user_id = $this->session->userdata('user_id');
$user_name = $this->session->userdata('user_name');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文