PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » PHP中高级 » session页面间传递变量的问题!
本页主题: session页面间传递变量的问题! 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

自由的龙

该用户目前不在线
级别: 中级程序员
精华: 1
发帖: 1264
威望: 1267 点
金钱: 12660 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-04-16
最后登录:2006-06-27

session页面间传递变量的问题!


主机:win2003
php版本:5.0.5
两个PHP文件,1.php和2.php
1.php
<body>
<p>
<?php
session_start();
$welcome="hello world !";
session_register("welcome");//注册$welcome变量,注意没有$符号
if(session_is_registered("welcome"))//检查$welcome变量是否注册
echo "welcome变量注册成功!";
else
echo "welcome变量注册失败!";
?>
<p>
<a href="2.php">
2.php
</a>
</p>
</body>

2.php
<body>
<p>
<?php
session_start();
$welcome=$_SESSION["welcome"];
echo "welcome=".$welcome."<br>";

?>
</p>
<p>
<a href="1.php">1.php</a>
</p>
</body>

进行1.php页面,在1.php里显示是“welcome变量注册成功!”,说明变量"welcome"是注册成功的,同时在C:PHPsession_temp文件夹下有
临时文件出现。点击1.PHP里的链接进入2.php(同一个浏览器窗口下操作),可以看到变量“welcom”的值等于"hello world !"。

出现问题:
进入1.php页面,在1.php里显示是“welcome变量注册成功!”,但是如果这时再开一个浏览器窗口,把2.php的地址输入进去,这里2.php页面上的"welcom"值是空的,难道SESSION不能跨窗体传递变量?

有一个方法就是设置COOKIE,
在1.php里的:
session_register("welcome");
语句后面加上
setcookie("PHPSESSID",session_id(),time()+3600,"/","www.myweb.com");
就可以解决这个问题。(但是只能使用一次,也就是说如果连续开两个窗口,都访问2.php,只有第一个可以,第二个就不行了,查看IE临时文件夹,COOKIE已经销毁了,郁闷~)
顶端 Posted: 2006-04-25 14:21 | [楼 主]
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » PHP中高级

时:11-23 20:42 Copyright © 2006 phpwhy.com 权
ICP05060669

曳息 -