SESSION跨页传递问题
来源:互联网 发布:日系大衣知乎 编辑:程序博客网 时间:2024/06/07 12:15
首先,我们要了解,在什么状态下SESSION中的会话变量不能跨页传递。情况有三:①客户端禁用了COOKIE;②在php.ini中设置了session.use_trans_sid=0或者在编译前没有开启--enable-trans-sid选项;③浏览器出现故障,暂时无法读写COOKIE文件。
造成SESSION变量无法跨页进行传递,其原因在于SESSION储存于服务器端(默认以文件方式存储内容),根据客户端提供的session id来得到用户的文件,取得变量的值,session id可以使用客户端的Cookie或者通过HTTP协议中的URL来传达给服务器,然后服务器通过读取存储Session的目录进行变量的读取。也就是说,session id是取得存储在服务器上的SESSION变量的唯一标识。
当函数session_start()运行时,在服务器上创建一个Session文件,随之也产生了与之唯一对应的一个session id,定义Session变量以一定形式存储在已创建的Session文件中。通过session id,可以取出定义的变量。跨页后,为了使用Session,程序再次执行session _start();这将会再产生一个新的Session文件,也会与之对应产生一个新的session id,用这个session id是无法获取第一个SESSION文件中的变量的,因为这个session id并不是一个页面上的session id。如果在session_start()函数执行前添加代码session_id($session_id),将不会产生新的SESSION文件,直接读取与这个session id对应的SESSION文件。
解决无法跨页传递会话变量,通常有以下几种方法:①设置php.ini中的session.use_trans_sid=1(windows下)或者编译时选择--enable-trans-sid选项(*nix下),让PHP可以自动跨页传递session id;②自定义脚本手动通过URL传值、隐藏表单传递session id;③以外部文件或数据库的形式对session id 进行存储,每次跨页访问时进行手动调用。
- SESSION跨页传递问题
- SESSION无法跨页传递问题
- PHP中SESSION不能跨页传递问题的解决办法
- PHP中SESSION不能跨页传递问题的解决办法
- PHP中SESSION不能跨页传递问题的解决办法
- session跨页传递问题的三条途径
- PHP中SESSION不能跨页传递问题的解决办法
- 抛开cookie使用session-PHP中SESSION不能跨页传递问题的解决办法
- 抛开cookie使用session-PHP中SESSION不能跨页传递问题的解决办法
- php5 的 session 详解之四: session 跨页传递 问题的三条途径
- [转贴]PHP中SESSION不能跨页传递问题的解决办法
- ThinkPHP5在WAMP环境下Session无法跨页传递的问题
- PHP的SESSION跨页面传递丢失的问题
- php session跨页面传递 session值丢失问题之完美解决
- 用session传递对象的一个问题。
- php虚拟主机session失效/无法跨页传递问题解决
- Session.use_trans_sid Session值跨脚本(跨页面)传递
- Resin 跨服务器的session传递
- android AsyncTask介绍
- C/C++——C++中new与malloc的10点区别
- 【codevs2066】三角恋
- ※ 关于MySQL的1067错误解决方法 ※
- 关于ARM指令中位置无关和位置相关代码的认识
- SESSION跨页传递问题
- ImageView显示图片控件介绍
- 16年1月中旬这几天:再写文章应该具有其应有的价值
- AsyncTask的简单使用
- 【Java小项目】自动爬取ShadowSocks测试帐号
- org.apache.jasper.JasperException: Unable to compile class for JSP
- ViewPager 实现左右循环滑动图片的两种方法
- Java基础_08_Java泛型
- 火狐浏览器一直出现,插件更新