全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php及codeigniter使用session-cookie的方法(详解)

1、读写cookie

<1>原生

setcookie('name','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

启动:

<?php
session_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及codeigniter使用session-cookie的方法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# php  # cookie  # session  # PHP 实现超简单的SESSION与COOKIE登录验证功能示例  # PHP cookie与session会话基本用法实例分析  # PHP的cookie与session原理及用法详解  # PHP cookie  # session的使用与用户自动登录功能实现方法分析  # php中cookie与session的区别点总结  # 就会  # 报错  # 放在  # 客户端  # 给大家  # 一个叫  # 要使  # 的是  # 是在  # 是这样  # 有一种  # 这就  # 希望能  # 他又  # 不存在  # 做一个  # 千万不要  # 这篇  # 会再  # 这可 


相关文章: 如何获取开源自助建站系统免费下载链接?  建站之星如何一键生成手机站?  如何选择靠谱的建站公司加盟品牌?  北京网站制作网页,网站升级改版需要多久?  如何在阿里云ECS服务器部署织梦CMS网站?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  建站之星如何优化SEO以实现高效排名?  购物网站制作公司有哪些,哪个购物网站比较好?  开心动漫网站制作软件下载,十分开心动画为何停播?  建站主机如何选?性能与价格怎样平衡?  名字制作网站免费,所有小说网站的名字?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  成都响应式网站开发,dw怎么把手机适应页面变成网页?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  建站之星代理如何优化在线客服效率?  c++怎么用jemalloc c++替换默认内存分配器【性能】  如何在阿里云虚拟主机上快速搭建个人网站?  如何设置并定期更换建站之星安全管理员密码?  网站制作软件有哪些,制图软件有哪些?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何通过IIS搭建网站并配置访问权限?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  北京企业网站设计制作公司,北京铁路集团官方网站?  ,南京靠谱的征婚网站?  建站之星如何保障用户数据免受黑客入侵?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  北京网站制作的公司有哪些,北京白云观官方网站?  如何快速搭建高效可靠的建站解决方案?  自助网站制作软件,个人如何自助建网站?  网站制作价目表怎么做,珍爱网婚介费用多少?  ,石家庄四十八中学官网?  Python如何创建带属性的XML节点  网站制作服务平台,有什么网站可以发布本地服务信息?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何快速生成高效建站系统源代码?  潮流网站制作头像软件下载,适合母子的网名有哪些?  微信小程序 五星评分(包括半颗星评分)实例代码  已有域名和空间如何搭建网站?  高端建站如何打造兼具美学与转化的品牌官网?  ,sp开头的版面叫什么?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在Golang中指定模块版本_使用go.mod控制版本号  如何基于云服务器快速搭建个人网站?  如何通过虚拟主机快速完成网站搭建?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  高防服务器租用首荐平台,企业级优惠套餐快速部署 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。