关于cookie和session的问题
时间:2013-05-25
来源:互联网
最近看了session永不过期的设置,修改php.INI文件暂且不说,单说这个程序修改的方法,我在书上和网上看到如下同样的代码,我有几点困惑:
我能理解大致的意思,我所困惑的是,是不是早期的php对sesison和cookie中变量的访问方式不同?我看到有这样说的:
当 PHP 脚本从客户浏览器提取了一个 cookie 后,它将自动的把它转换成一个变量。例如:一个名为 CookieID 的 cookie 将变成变量 $CookieID.
我怀疑这是早期php的访问方式,正因为如此我不太懂上面代码中$PHPSESSID和$count的由来,我觉得应该是$_cookie['PHPSESSID']和$_SESSION['count'];
我去查php4的手册没找到相关论述,本人php新手,不了解php的历史,希望有大神解疑~~~~
<?php session_start(); // 启动Session $_SESSION['count']; // 注册Session变量Count isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); // 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID $_SESSION['count']++; // 变量count加1 setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中 echo $count; // 显示Session变量count的值 ?>
我能理解大致的意思,我所困惑的是,是不是早期的php对sesison和cookie中变量的访问方式不同?我看到有这样说的:
当 PHP 脚本从客户浏览器提取了一个 cookie 后,它将自动的把它转换成一个变量。例如:一个名为 CookieID 的 cookie 将变成变量 $CookieID.
我怀疑这是早期php的访问方式,正因为如此我不太懂上面代码中$PHPSESSID和$count的由来,我觉得应该是$_cookie['PHPSESSID']和$_SESSION['count'];
我去查php4的手册没找到相关论述,本人php新手,不了解php的历史,希望有大神解疑~~~~
作者: 【纵我不往】 发布时间: 2013-05-25
你提到的 “cookie自动转换为变量” 是PHP的 register global 特性。如果你在 php.ini 中设置 register_globals = On 时,PHP就会把所有的请求数据设置为PHP变量,不光是 $_COOKIE, 还有 $_GET, $_POST 等一系列用于存储请求数据的数组。这会带来一些潜在的安全性问题,所以一般都是建议关闭的。
这个特性在 PHP 4.2.0 之前一直是默认开启的,但在 PHP 4.2.0 之后已经默认关闭了。从5.3开始会DEPRECATED,5.4中这个特性就要删除了。
你给出的代码可以兼容 register_globals 开启和不开启的情况。它首先检查 $PHPSESSID 是否存在(若register_globals开启,则该变量存在),如果不存在,就设置它的值。
所以,如果你的PHP环境关闭了register_globals,那么对 $PHPSESSID 的检查就会发现该变量不存在,从而给他赋值。不会影响程序的功能。
这个特性在 PHP 4.2.0 之前一直是默认开启的,但在 PHP 4.2.0 之后已经默认关闭了。从5.3开始会DEPRECATED,5.4中这个特性就要删除了。
你给出的代码可以兼容 register_globals 开启和不开启的情况。它首先检查 $PHPSESSID 是否存在(若register_globals开启,则该变量存在),如果不存在,就设置它的值。
所以,如果你的PHP环境关闭了register_globals,那么对 $PHPSESSID 的检查就会发现该变量不存在,从而给他赋值。不会影响程序的功能。
作者: dzy0451 发布时间: 2013-05-25
dzy0451 发表于 2013-5-26 10:44
你提到的 “cookie自动转换为变量” 是PHP的 register global 特性。如果你在 php.ini 中设置 register_glo ...
你提到的 “cookie自动转换为变量” 是PHP的 register global 特性。如果你在 php.ini 中设置 register_glo ...
嗯,兄台说得对,我已经查到了,哎,现在出书的都不严谨,也是直接拿网上代码贴的~~
作者: 【纵我不往】 发布时间: 2013-05-26
楼上正解啊
作者: 可可可 发布时间: 2013-07-26
相关阅读 更多
热门阅读
- office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
- 如何安装mysql8.0
阅读:31
- Word快速设置标题样式步骤详解
阅读:28
- 20+道必知必会的Vue面试题(附答案解析)
阅读:37
- HTML如何制作表单
阅读:22
- 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
- ET文件格式和XLS格式文件之间如何转化?
阅读:24
- react和vue的区别及优缺点是什么
阅读:121
- 支付宝人脸识别如何关闭?
阅读:21
- 腾讯微云怎么修改照片或视频备份路径?
阅读:28