如果從Topic/topic
頁面跳到Login/login
頁面使用$_SERVER['HTTP_REFERER']
後再login頁面出來的位址是這樣的http://localhost/a/jz/index .php/Home/topic/topic
,這個位址沒錯,為什麼我使用redirect跳轉後網址列上的位址就變成這樣http://localhost/a/jz/index.php/a/jz /index.php/Home/Login/login.html
?
而且這個跳轉的地址為什麼不是之前存入session的地址呢?
<code>以下是login控制器下login操作方法跳转部分的代码 $url=$_SERVER['HTTP_REFERER']; session('url',$url); var_dump(session('url')); if(!isset(session('res2')[0])){ //验证通过产生的session是否存在 $this->display(); //不存在session还显示login页面 }else{ $this->redirect(session('url')); //存在则跳转 }</code>
如果從Topic/topic
頁面跳到Login/login
頁面使用$_SERVER['HTTP_REFERER']
後再login頁面出來的位址是這樣的http://localhost/a/jz/index .php/Home/topic/topic
,這個位址沒錯,為什麼我使用redirect跳轉後網址列上的位址就變成這樣http://localhost/a/jz/index.php/a/jz /index.php/Home/Login/login.html
?
而且這個跳轉的地址為什麼不是之前存入session的地址呢?
<code>以下是login控制器下login操作方法跳转部分的代码 $url=$_SERVER['HTTP_REFERER']; session('url',$url); var_dump(session('url')); if(!isset(session('res2')[0])){ //验证通过产生的session是否存在 $this->display(); //不存在session还显示login页面 }else{ $this->redirect(session('url')); //存在则跳转 }</code>
應該是$this->redirect
處理的問題
方法一、把$_SERVER['HTTP_REFERER']
獲取到的內容用str_replace
去掉前面這部分$url = str_replace('http://localhost/a/jz/index.php','' ,$url);
方法二、不使用$this->redirect(session('url'));
跳轉,改用header('location:'.session('url'));exit();