session("memberid",$result);//直接存入session
session("membername",$data['member_username']);
$this->assign ( 'membername', $_POST['membername'] );//前台赋值登录状态
if($result) { //处理注册成功后的结果。跳转会员信息完善页面
print_r($_SESSION);//这里能输出session 有值
echo "<sc
$this->redirect('Index/memberinfo');//跳转方法
}else{
echo "<sc
}
以上是sign方法,注册提交的方法!!!
以下是memberinfo方法,就是跳转到的那个方法!!!
public function memberinfo(){//会员信息页
print_r($_SESSION);//这里已经没有session输出了
$membername = "";
$memberid = "";
if(!empty($_SESSION['membername'])){//检查登录状态 并赋值
$membername = $_SESSION['membername'];
}else{
$membername = "请登录";
}
........其他代码......
}
session跳转后就被清空了,不知道是什么原因,目前用的是$this->redirect('Index/memberinfo');这个方式跳转。
试过js的跳转,就是window.location.href=这个也一样获取不到,header压根不执行。
唯一一个能获取到session的办法是:跳转那个地方改成$this->memberinfo();这个,直接进方法。这样确实可以获取到,但是页面url还是停留在之前的sign页面,并没有进入memberinfo那个页面,能输出是因为我再memberinfo方法里写上了$this->display("memberinfo"); 所以实质上还是在sign那个方法里,刷新的话会重新提交表单。目前没找到解决的办法。另外session_auto_start开了,apache没有问题。因为用dwz客户端的后台管理试过就没问题。
求解,急~大神们想想办法吧,万分感谢
最佳答案