1、读写cookie
1 原生
setcookie( name , html' target='_blank'>value ,time)
设置失败,没有正常写入浏览器,测试失败,原因未知
2 CI框架
$this- input- set_cookie( views , test10 ,1000);echo $_COOKIE[ views //此方法获取值时,如果值不存在会报错,当然可以先用isset($_COOKIE[ views ])判断一下
3 通过helper
$this- load- helper( cookie //这行放在view也是可以的,随便set_cookie( views , test10 ,1000);echo get_cookie( views //此方法获取值如果获取不到,会返回空,不会报错
2、读写session
1 原生session
启动:
?phpsession_start();?
赋值:
$_SESSION[ views ] = test20
取值:
echo Session: . $_SESSION[ views
存续时间:
会话。当浏览器关闭,cookie里面的phpsession就会清空,下次打开会重新生成一个
虽然服务器还保存着这个session。session的过期时间在php.ini里设置,参见另一篇文章php(codeigniter)安全性注意事项
2 CI框架session
启动:
$this- load- library( session //load必须在controller完成,当要使用session必须先load赋值:$this- session- views = test11
取值:
echo Session: . $_SESSION[ views
存续时间:
客户端有2个小时的存续时间,当服务器的session被删除,因为客户端的session id还是有效的,所以当再次打开的时候,服务端会再创建一个跟客户端session id相同的session,当然是创建新id还是老id并不重要,因为只是id同名,里面是没有数据的
3 区别
两个session名称是不同的,一个叫phpsession,一个叫ci_session
只能启动一个,不能两个都启动
取值是相同的
两个千万不要混用,应该全面放弃原生的方式
原生phpsession的是随便访问的,ci_session是httponly的,这就意味着原生的session可能会被通过xxs攻击,通过js获取到cookie
4 例外情况
有一种情况是这样的:
当此时已经存在ci_session,因为这个ci_是持久化的
//session_start();//没有启动原生的session//$this- load- library( session //没有启动ci的session$_SESSION[ views ] = test23 //直接用原生的方式进行赋值echo Session: . $_SESSION[ views //可以正常取值出来 test23
通过查看cookie,发现没有原生session存在,只能是走的ci session,那么在服务器的session里找到这个文件,发现这个值没有写进去 如果有声明session_start(),他就会走原生的模式,会重新创建一个phpsession,并且值会写进去
如果什么都没声明,也没有赋值,直接取值,那么会报错,因为要使用ci_session必须要load,我们没有load就会报错,所以证明了,在用原生的方式进行赋值的时候,他相当于启动了session,启用了ci_session,但他又没有权限写入,这可以说是一个bug
5 session如何运作
cookie的运作比较容易理解,就是写入到用户cookie,写什么读出来就是什么。只要是本站的cookie,就可以通过键值读出来。
session的值是存在服务器的,但是怎么知道这个值是哪个用户的?通过在用户cookie里存入那个session的文件名,而保存的值放在服务器同名的文件里面。说的盗取cookie指的就是盗取这个,重要的信息存在服务器上,但是这个被盗了也完蛋。所以,也不能相信cookie里存的这个session-key,应该做一个鉴权。
注意,写入session的同时,写session-key到用户的cookie里这个是自动完成的,这个存续时间应该是在服务器的php.ini里面配置。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !
相关推荐:
如何实现PHP CodeIgniter分页及多条件查询
以上就是关于php及codeigniter使用session-cookie的方法解析的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答