[救火!!]有关session的问题!请给点意见!

swson 2004-05-06 10:48:05
弄得咱一天没休息好了!
session变量在页面之间不能有效传递!
具体是:
<?php
Session_Start();
Session_Register('user_name');
Session_Register('user_pwd');
......
下面有一判断赋值语句!
......
?>
假如登陆系统(action="login.php"),成功之后点页面上的 本页' 或 他页' 链接会导致session变量清空(N),即需要重新登陆!
但是如果写一个auto_jump()函数(使用语句:<meta http-equiv=\"refresh\" content=\"5;URL=$toUrl \">,非Header,若使用Header()也会出现以上现象!)即只刷新不会需要重新登陆,这是为什么?在别的页面就不可用啦!?
大家都给点意见,描述一下可以的问题也可以!
...全文
39 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
demong 2004-05-07
  • 打赏
  • 举报
回复
session的储存文件夹有嘛?
luodonghua 2004-05-07
  • 打赏
  • 举报
回复
分,虚拟的东西,有用吗?

工作了
swson 2004-05-07
  • 打赏
  • 举报
回复
谢啦,luodonghua(庙街卖碟的阿三) !有问题再Call你!
问题产生的原因是使用了旧版的session函数——session_register
在PHP 4.2.3以后不要再使用session函数库,而将对session的操作由使用session函数改为对$_SESSION数组的操作。其实这要比用session函数要简单多了。
再表感谢!(我还不懂怎么散分呢,不好意思了,下次一定散!)
luodonghua 2004-05-07
  • 打赏
  • 举报
回复
那就用$_SESSION啦
session和cookie的关系,主要是session地实现
swson 2004-05-07
  • 打赏
  • 举报
回复
session和cookies之间应该是没有什么影响,不过有的代码用
swson 2004-05-07
  • 打赏
  • 举报
回复
PHP Version 4.3.5 的!
luodonghua 2004-05-07
  • 打赏
  • 举报
回复
你的php的版本是多少?
luodonghua 2004-05-07
  • 打赏
  • 举报
回复
Session_Register('user_name');
换成:$_SESSION['username'] = $user_name


session_unset('user_pwd');
换成:unset($_SESSION['user_pwd'])

你用的那个,需要register_globals on

session和cookie的关系,你不用研究拉,与你的问题没有关系的。
swson 2004-05-07
  • 打赏
  • 举报
回复
还有就是,我使用setcookie('cook_user_stamp',time(),time()+31563000);的话对session的使用会产生什么样的影响呢?
swson 2004-05-07
  • 打赏
  • 举报
回复
我用了一下不太好用!总有问题,把源码帖下,帮忙看看,各位也提点意见!谢谢:
<?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');
?>
swson 2004-05-07
  • 打赏
  • 举报
回复
意思是:
"用$_SESSION['user_name']来代替session_register('user_name'),这样可以自动注册一个全局的变量,而使脚本正常工作避免出现不能使用变量的情况;"
吗?
luodonghua 2004-05-07
  • 打赏
  • 举报
回复
这句话,你注意到了吗?

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.
swson 2004-05-07
  • 打赏
  • 举报
回复
还有一个现象:
我在session_start();前或后面放入一段:setcookie('cook_user_stamp',time(),time()+31563000);之后,就会出现那样的问题!而不放的话则无法logout了!
swson 2004-05-07
  • 打赏
  • 举报
回复
问题还没有解决啊!
我改过$_SESSION[],写了个小测试,但还是不能在页面间传递!烦啦:-(
不过我估计程序的问题应该是没有,很简单的程序嘛!
开始用session_register()注册的全局变量在ses_...文件中有记录,跟改过来的现象一样!
swson 2004-05-07
  • 打赏
  • 举报
回复
session.cache_limiter = nocache
设置成这样怎么样,会不会影响session变量在页面间的传递?
hahawen 2004-05-06
  • 打赏
  • 举报
回复
或是缓存的问题
hahawen 2004-05-06
  • 打赏
  • 举报
回复
代码由问题.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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