再啰嗦一句:当然,youbest 所说的也是可以解决问题的。不过既然这个问题可以绕开 register_globals 来解决,为了系统安全起见,还是把 php 配置参数 register_globals 设为 off 的好:) php4.2 新安装后的 register_globals 缺省设为 off 是有道理的。
to azhilaoa: 还是不行,我的链接变成了下面这个了: http://ming/hx/list_video.php?LogUser=b63daad1e13a3c743fa282b2f694d2fe 在list_video.php里的判断句是: if (!session_is_registered("LogUser"))//用户没有登录;急,请帮我搞定!
我判断登录的语句是:
session_start();
if (!session_is_registered("LogUser")||$LogUser=="")
{
header("Location: go_login.php?url4go=list_video.php");//跳转提示没登录
}
为了保证代码的通用性,尽量使用php.ini的默认配置.session_start();
if (!session_is_registered("LogUser")||$_GET['LogUser']=="")
{
header("Location: go_login.php?url4go=list_video.php");//跳转提示没登录
}
当一个用户访问你的某一网页,服务器自动为这个用户配置一个唯一的 session id。
不同页面之间的 SESSION变量 的传递是在这个唯一的 session id 的基础上进行的。
当打开一个新页面时,服务器会自动为这个用户配置另一个唯一的 session id。
因此,如果想要保持你的原来页面中的 SESSION变量 的传递,要通过 url 来传递那个
唯一的 session id。具体解决办法实现如下:
假如你原来在登录页面(logon.php)中的连接是这样的:
<?php
print "<a href=aa.php>链接</a>";
?>
在本窗口打开没问题。如果想在新页面里打开,而同时也希望传递老页面里的 SESSION变量,
要在连接页面 url 后面加上这个 session id:<?php
print "<a href=aa.php?$a=".session_id()." target=_blank>链接</a>";
?>好了,解决了:)
php4.2 新安装后的 register_globals 缺省设为 off 是有道理的。
还是不行,我的链接变成了下面这个了:
http://ming/hx/list_video.php?LogUser=b63daad1e13a3c743fa282b2f694d2fe
在list_video.php里的判断句是:
if (!session_is_registered("LogUser"))//用户没有登录;急,请帮我搞定!
肯定用了:session_start()……不然就用不了session了问题还没解决!
echo "<a href=aa.php?$a=".$LogUser." target=_blank>链接</a>";
?>
<?php
session_start(); //初始化一个session
$_SESSION['LogUser']="True";
echo "<a href=aa.php?$a=".session_id()." target=_blank>新窗口链接</a>";
?>aa.php页:
<?php
session_start(); //初始化一个session
$LogUser=$_SESSION['LogUser'];
print "\$LogUser=".$LogUser;//显示传递过来的变量
?>
session.auto_start=0:)
<?php
session_start();
if (!session_is_registered("LogUser")) print "用户没有登录";
else print "欢迎!";
?>:)
我全都试过,还是不行。真的非常感谢!
你的 php 什么版本?Web Server 是什么?Windows?Linux?
你把代码拷贝下来,一个字别改,运行,还不行?