php的CI框架,如何使用session

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的CI框架,如何使用session相关的知识,希望对你有一定的参考价值。

里面有两种session的使用方法:
1是php的原始的session使用方法,这个很简单,$_SESSION['name']="name",然后在需要的地方显示:echo $_SESSION['name'];
2是codeigniter这个框架的一个方法:
下面就详细讲解如何使用这个有点点复杂的方法:
首先,在\ci\application\config下面的config.php文件中找到:$config['encryption_key'] = '';这个里面随便填什么值都可以,但是不能为空。一般是英文啊,不要钻牛角尖。
接着在\ci\application\config下面的auto.php文件中找到:$autoload['libraries'] = array('');里面要填写:$autoload['libraries'] = array('session');或者在适当的地方如control文件夹里面的相应文件中(一般是在构造方法中)写:$this->load->library('session');这样也行。
现在环境配置好了,现在就是写代码了:
在需要放入session的地方写:
$this->session->set_userdata('name','yang');
这样session里面就有了值了。
显示值:
echo $this->session->userdata('name');
如果是array,则:
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
以下是转载的别人的详细的有点废话的相关知识:
Sessions会在每个页面载入后开始运行,所以session类必须首先被初始化。

1、您可以在控制器中初始化,也可以在系统中自动加载(译者注:在autoload.php设定)$autoload['libraries'] = array('session');

2、要在您的控制器构造函数中初始化session类,您可以使用 $this->load->library 函数:$this->load->library('session');一旦被载入, session就可以这样使用: $this->session。
session类的绝大部分都会在后台运行,所以初始化session时,它session数据会被自动读取、创建和更新。

Sessions 是怎样工作的?
需要知道的非常重要的一点就是,session类一旦被初始化,它就会自动运行。对于后面的事情,您可以完全不作理会。正如您将会在下面看到的一样,您可以正常使用session来工作,甚至还可以添加自己的session数据,而在这一切的过程中,读、写和更新的操作都是自动完成的。

当页面载入后,session类就会检查用户的cookie中是否存在有效的session数据。如果session数据不存在(或者已经过期),那么就会创建一个新的session并把他保存在cookie中。如果session数据存在,那么他的信息就会被更新,同时cookie也会被同时更新。每次更新都会重新生成session_id的值。

默认情况下, Session Cookie 每隔 5 分钟才会更新一次,这样会减少对处理器的负荷。如果你重复的装载页面, 你会发现"上次活动"的时间在五分钟,或多余五分钟的时候才会变化,也就是 cookie上次被写入的时间。 这个时间可以通过设置 application/config/config.php 文件里的 $config['sess_time_to_update'] 行来改变。
参考技术A $this->load->library('session');//加载session类
$this->session->set_userdata($array);//保存session
$name = $this->session->userdata('name'); //读取session

希望我的回答可以帮助到你

本回答被提问者采纳

CI框架中如何配置Nginx

codeigniter(CI)是一个轻量型的PHP框架,因为它是在apache服务器下开发的,所以在nginx下需要特别的配置才可以使用。

具体方法如下:

1.对application/config/config.php进行修改,大约在48行左右。

  $config[‘uri_protocol‘] = "PATH_INFO";
 
2.配置nginx.conf文件
 server {

        listen       80;

        listen [::]:80 ipv6only=on;

        server_name  localhost;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 root   share/nginx/html;

            index  index.php index.html index.htm;

        location / {

            #root   share/nginx/html;

            #index  index.php index.html index.htm;

            try_files $uri $uri/ /index.php?$query_string;

        }

 

location ~ \.php($|/) {

            root           localhost;//类似于apache的host地址 例如:share/nginx/html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

fastcgi_split_path_info ^(.+\.php)(.*)$;

            fastcgi_param   PATH_INFO $fastcgi_path_info;

            fastcgi_param SCRIPT_FILENAME localhost$fastcgi_script_name; //这里的localhost指的是完整的root地址例如:/opt/local/share/nginx/html

            include        fastcgi.conf;

        }

 

以上是关于php的CI框架,如何使用session的主要内容,如果未能解决你的问题,请参考以下文章

CI框架SESSION重写

CI框架中如何配置Nginx

CI框架 -- 在视图文件中使用 PHP 替代语法

CI框架中,扩展验证码类。

在CI框架中如何实现伪静态

CI框架中集成CKEditor编辑器的教程