关于Session的问题,是否和引用机制有关?

iswm 2014-09-26 10:27:29
请各位PHP大侠帮忙看看,该如何解决?多谢

和session传值采用引用方式有关?如果给session赋的不是确定的值,转到另一个页面后地址空间就被释放了?
//==============================================================
情形一:session赋值是GET过来的参数,其他的页面取session的值,结果为空(NULL),出错
<?php
session_start();

$uid = $_GET['uid'];
$_SESSION['user_id'] = $uid ;
?>

情形二:session赋值是确定的值,其他的页面取session的值,正确
<?php
session_start();

$uid = 'myname';
$_SESSION['user_id'] =$uid;

?>
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商众筹 2014-09-28
  • 打赏
  • 举报
回复
我猜这个问题很可能是以前碰到过的 http://bbs.csdn.net/topics/390821458 如果真是上帖的问题就能说通了,额外的请求访问第一种得到的uid是空,但第二种已在程序中赋值
xuzuning 2014-09-27
  • 打赏
  • 举报
回复
这有什么好探讨的? if(isset($_GET['uid'])) $_SESSION['user_id'] = $_GET['uid'];
iswm 2014-09-27
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
对于 session_start(); $uid = $_GET['uid']; $_SESSION['user_id'] = $uid ; 只要 $_GET['uid'] 为空,则 $_SESSION['user_id'] 就为空 你也不做一下判断?
在本页面打印出来都是有值,这里主要探讨这个问题,程序校验在正式代码中完善:)
xuzuning 2014-09-27
  • 打赏
  • 举报
回复
对于 session_start(); $uid = $_GET['uid']; $_SESSION['user_id'] = $uid ; 只要 $_GET['uid'] 为空,则 $_SESSION['user_id'] 就为空 你也不做一下判断?
iswm 2014-09-27
  • 打赏
  • 举报
回复
有值的。在本页面打印出来都是有值且争取的。不知是否和后续加载了thinkphp框架有无关系?
侑子的小伙伴 2014-09-27
  • 打赏
  • 举报
回复
应该不存在这样的问题 你确定一下 $_GET['uid'] 是否是有值的

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧