求助:uchome开发中全局变量$_SGLOBAL问题
时间:2011-07-13
来源:互联网
本人准备开发个插件,刚开始接触这个系统。碰到个问题无法解决,如下:
看代码分析,$_SGLOBAL['supe_uid']这个变量在common.php中进行初始化,然后再do_login.php中进行赋值,它可以在其他各个php文件中自由传递,我仿照这个变量自己设计一个$_SGLOBAL['supe_book']变量,也在common.php中进行初始化,然后再do_login.php中进行赋值,但这个值却不能自由传递,即当程序通过include跳转到另一php文件后,这个值就自动初始化了。跟踪了系统登陆的整个代码,还是百思不得其解,望高人相助。
看代码分析,$_SGLOBAL['supe_uid']这个变量在common.php中进行初始化,然后再do_login.php中进行赋值,它可以在其他各个php文件中自由传递,我仿照这个变量自己设计一个$_SGLOBAL['supe_book']变量,也在common.php中进行初始化,然后再do_login.php中进行赋值,但这个值却不能自由传递,即当程序通过include跳转到另一php文件后,这个值就自动初始化了。跟踪了系统登陆的整个代码,还是百思不得其解,望高人相助。
作者: ucstudy 发布时间: 2011-07-13
你在 do_login.php 中对 $_SGLOBAL['supe_book'] 赋值的时候,是在一个 function 里吗?如果是的话,有没有先写一行 global $_SGLOBAL 呢?如果没有这个,那实际上只是对一个局部变量赋值。

————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)

————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
作者: maquan 发布时间: 2011-07-13
你的签名档很有意思啊
作者: flylifei 发布时间: 2011-07-13
引用 1 楼 maquan 的回复:
你在 do_login.php 中对 $_SGLOBAL['supe_book'] 赋值的时候,是在一个 function 里吗?如果是的话,有没有先写一行 global $_SGLOBAL 呢?如果没有这个,那实际上只是对一个局部变量赋值。
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技……
你在 do_login.php 中对 $_SGLOBAL['supe_book'] 赋值的时候,是在一个 function 里吗?如果是的话,有没有先写一行 global $_SGLOBAL 呢?如果没有这个,那实际上只是对一个局部变量赋值。
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技……
不是通过function赋值.
在do_login中, $_SGLOBAL['supe_uid'] 的赋值是通过$_SGLOBAL['supe_uid'] = $space['uid'];来实现的,通过这个赋值,$_SGLOBAL['supe_uid'] 就可以在各个php文档中传递了。我在测试阶段,给$_SGLOBAL['supe_book']赋个固定值(比方说179),即在下一行写入$_SGLOBAL['supe_book'] = 179;但无法在其他文档中传递,当我在space.php中echo $_SGLOBAL['supe_book']时,出现的不是179,而是在common.php中初始化的值;而echo $_SGLOBAL['supe_uid']却能出现正确的值。
按理说$_SGLOBAL['supe_uid']和$_SGLOBAL['supe_book']是两个类似的变量,不存在一个可以传递一个不能传递的可能性啊。难道在uchome的其他什么地方我忽略了什么东西?
作者: ucstudy 发布时间: 2011-07-13
我想……呃……你是不是误会了“全局变量”的含义?……
PHP 的全局变量,只是在一个 HTTP Request 的范围内有效的。当一个请求被 do_login.php 处理的时候,你给 $_SGLOBAL['supe_book'] 赋了一个值,但这个值在处理结束后就消失了。等到下一个请求被 space.php 处理的时候,$_SGLOBAL 是全新的。
--------
With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is
hard to be sure where they are going to land, and it could be dangerous sitting under them as they
fly overhead.
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
PHP 的全局变量,只是在一个 HTTP Request 的范围内有效的。当一个请求被 do_login.php 处理的时候,你给 $_SGLOBAL['supe_book'] 赋了一个值,但这个值在处理结束后就消失了。等到下一个请求被 space.php 处理的时候,$_SGLOBAL 是全新的。
--------
With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is
hard to be sure where they are going to land, and it could be dangerous sitting under them as they
fly overhead.
出自 RFC1925 - The Twelve Networking Truths
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
作者: maquan 发布时间: 2011-07-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28