• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-22) 19次浏览 已收录 0个评论

本篇文章主要介绍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

启动:

<?phpsession_start();?>

赋值:

$_SESSION['views'] = "test20";

取值:

echo "Session:". $_SESSION['views'];

存续时间:

会话。当浏览器关闭,cookie里面的phpsession就会清空,下次打开会重新生成一个

虽然服务器还保存着这个session。session的过期时间在php.ini里设置,参见另一篇文章php(codeigniter)安全性注意事项

<2>CI框架session

启动:

本2文来*源gao($daima.com搞@代@#码(网搞gaodaima代码

$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"

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php及codeigniter使用session-cookie的方法详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址