一个走在php路上的追梦者
http://bblog.mozhou168.com

php怎样实现登录后跳转到原来或之前的页面

1.问题描述:

网上搜索了很多办法,N多说用$_SERVER['HTTP_REFFER']然后存session,读session的,还有说是直接判断$_SERVER['HTTP_REFFER']的,我真想说:你们到底试过了吗?反正我这里试了是不行。

2.解决方案:

经过实验发现,只要是涉及到$_SERVER['HTTP_REFFER'],则,无论是变量保存还是常量都是无法达到保存上一个的$_SERVER['HTTP_REFFER']的。当然,session也不行。

然后试了试cookie,发现可以。

3.代码:(注意加黑部分)

setcookie('refer', $_SERVER['HTTP_REFERER']);

trace($_SERVER['HTTP_REFERER'], 'refer', 'debug');

if(IS_POST){

    $usr = isset($_POST['username']) ? I('post.username') : '';

    $pwd = isset($_POST['password']) ? I('post.password') : '';

    if(empty($usr)){

        $this->error('用户名不能为空');

    }

    if(empty($pwd)){

        $this->error('密码不能为空');

    }

    $member=M('user');

    $pwd=md5(md5($pwd).'3213dfsafd');

    $where = array(

        'u' => $usr,

    );

    $ret=$member->where($where)->find();

    if(!$ret){

        $this->error('用户名不存在');

    }else{

        if($ret['password'] == $pwd){

            session('user',$ret);

            redirect($_COOKIE['refer']);die;

        }else{

            $this->error('密码错误');

        }

    }

}


评论

© BoserSteven | Powered by LOFTER