作者knuckles (那克斯)
看板PHP
标题[请益] 诡异的session变数问题
时间Thu Dec 24 16:38:26 2009
刚发生了一点bug,研究了好久
session_start();
$tn = 0;
if(isset($_GET['tn'])) $tn = $_GET['tn'];
else if(isset($_SESSION['tn'])) $tn = $_SESSION['tn'];
echo $tn;
像这样,当 $_SESSION['tn'] 有值时
最後 $tn 一样是 0
可是当 $_GET['tn'] 有值时
$tn 就会是 $_GET['tn'] 的值
不过如果改成这样
session_start();
if(isset($_GET['tn'])) $tn = $_GET['tn'];
else if(isset($_SESSION['tn'])) $tn = $_SESSION['tn'];
else $tn = 0;
echo $tn;
最後$tn就会是 $_SESSION['tn'] 的值了
所以我想是因为一般变数名称如果和 session 阵列 的index名称一样会互相影响?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.43.117.233
※ 编辑: knuckles 来自: 114.43.117.233 (12/24 16:40)
1F:推 EragonJ:register_globals 要设定成 off 12/24 16:51
2F:推 EragonJ:register_gloabals的设定是说可以决定要不要把EGPCS变数 12/24 16:55
3F:→ EragonJ:视为全域变数以$NAME的方式去存取 12/24 16:55
5F:→ bobju:看不到$_SESSION['tn']被赋值的情境,还无法确认真正原因. 12/24 17:25
6F:→ knuckles:喔喔 谢谢 EragonJ 原来是忘了关那个 关了就正常了 ^^|| 12/24 18:14
7F:→ knuckles:测试用的电脑是装appserv,预设这个是on 囧 12/24 18:18