禁用cookie后session是如何传递
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁用cookie后session是如何传递相关的知识,希望对你有一定的参考价值。
我们都知道当在session 会话有基于cookie和基于url两种传递SESSIONID的方法。为了实现客户端禁止cookie发送的情况也不影响客户登陆网站,可以设置 PHP.ini中 session.use_trans_sid=1 ,表示当客户端浏览器禁止cookie的时候,页面上的链接会基于url传递SESSIONID。但是很多人仅仅设置了这一个选项并没有达到效果,本人也 遇到此问题,后来一番研究发现
php.ini 文件中还有两个选项
session.use_cookies=1
session.use_only_cookies=1
仔细琢磨上面的英文就会发现其意义
session.use_cookies表示是否开始基于cookies的session会话
session.use_only_cookies 表示是否只开启基于cookies的session的会话方式
所以如果想要在浏览器开启cookie的时候用基于cookie的方式,在未开启cookie的时候使用url的方式就进行如下设置(最常用的方式,推荐)
在php.ini文件中
session.use_trans_sid=1
session.use_only_cookies=0
session.use_cookies=1
或者 在php程序中
ini_set(“session.use_trans_sid”,”1″);
ini_set(“session.use_only_cookies”,0);
ini_set(“session.use_cookies”,1);
如果不管浏览器是否开启cookie,都使用url的方式就进行如下设置(这个例子主要想说明一下设置session.use_only_cookies 和 session.use_cookies的区别)
在php.ini文件中
session.use_trans_sid=1
session.use_only_cookies=0
session.use_cookies=0
或者 在php程序中
ini_set(“session.use_trans_sid”,”1″);
ini_set(“session.use_only_cookies”,0);
ini_set(“session.use_cookies”,0);
动手自己试一试 你就会明白session.use_only_cookies 和 session.use_cookies的区别。
还有就是可以通过隐藏表单提交、用文件或数据库等形式保存session_id,在跨页过程中手动调用
方法一:PHP.ini设置 session.use_trans_sid = 1
方法二:url get传递session_id的值
以上是关于禁用cookie后session是如何传递的主要内容,如果未能解决你的问题,请参考以下文章
php在客户端禁用cookie时让session不失效的解决方法
cookie编码乱码问题与cookie禁用后session操作
php 会话控制(禁用cookie后session为什么会失效?)
JavaWeb基础 session 当浏览器禁用cookie时,可以使用response.encodeURL传递JSESSIONID