这句话,你注意到了吗?If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
"用$_SESSION['user_name']来代替session_register('user_name'),这样可以自动注册一个全局的变量,而使脚本正常工作避免出现不能使用变量的情况;"
吗?
<?php
//用户登陆处理文件login.php
Session_Start();
Session_Register('user_name');
Session_Register('user_pwd');
include('include/fun4.php');
if($action=='logout'){
session_unset('user_name');
session_unset('user_pwd');
session_destroy();
echo"已经处于退出状态!";
}
elseif($action=='login'){
require('include/conn.inc.php');
if($user!=""&&$pwd!=""){
$query="select * from $LOG_CHECK_TABLE where username='$user'";
$result=mysql_query($query) or die(mysql_error());
$data=mysql_fetch_array($result);
if($data['password']==$pwd){
$user_pwd=$pwd;
$user_name=$user;
echo"成功登陆!".$user_name." and ".$user_pwd;
}else{echo " 用户名或密码有误,请重新认真填写!";}
}else{echo"您还没有输入用户名和密码!";}
}else{echo"请选择您的行为,登陆/退出!";}
auto_jump('index.php');
?>
换成:$_SESSION['username'] = $user_name把
session_unset('user_pwd');
换成:unset($_SESSION['user_pwd'])你用的那个,需要register_globals onsession和cookie的关系,你不用研究拉,与你的问题没有关系的。
session和cookie的关系,主要是session地实现
问题产生的原因是使用了旧版的session函数——session_register
在PHP 4.2.3以后不要再使用session函数库,而将对session的操作由使用session函数改为对$_SESSION数组的操作。其实这要比用session函数要简单多了。
再表感谢!(我还不懂怎么散分呢,不好意思了,下次一定散!)
设置成这样怎么样,会不会影响session变量在页面间的传递?
我改过$_SESSION[],写了个小测试,但还是不能在页面间传递!烦啦:-(
不过我估计程序的问题应该是没有,很简单的程序嘛!
开始用session_register()注册的全局变量在ses_...文件中有记录,跟改过来的现象一样!