Heim > Artikel > Backend-Entwicklung > ThinkPHPs Redirect-Jump- und Referrer-Nutzungsprobleme
Wenn Sie von der Seite Topic/topic
zur Seite Login/login
springen, $_SERVER['HTTP_REFERER']
verwenden und sich dann anmelden, sieht die Adresse wie folgt aus: http://localhost/a/jz/index.php/Home/topic/topic
Diese Adresse ist korrekt, um zu springen zur Adressleiste? Die Adresse wird so http://localhost/a/jz/index.php/a/jz/index.php/Home/Login/login.html
?
Und warum ist diese Sprungadresse nicht die Adresse, die zuvor in der Sitzung gespeichert wurde?
<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>
Wenn Sie von der Seite Topic/topic
zur Seite Login/login
springen, $_SERVER['HTTP_REFERER']
verwenden und sich dann anmelden, sieht die Adresse wie folgt aus: http://localhost/a/jz/index.php/Home/topic/topic
Diese Adresse ist korrekt, um zu springen zur Adressleiste? Die Adresse wird so http://localhost/a/jz/index.php/a/jz/index.php/Home/Login/login.html
?
Und warum ist diese Sprungadresse nicht die Adresse, die zuvor in der Sitzung gespeichert wurde?
<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>
Es sollte ein Problem sein, mit dem $this->redirect
umgegangen werden sollte
Methode 1: Verwenden Sie $_SERVER['HTTP_REFERER']
, um den vorherigen Teil des durch str_replace
$url = str_replace('http://localhost/a/jz/index.php','',$url);
erhaltenen Inhalts zu entfernen
zum Springen, sondern $this->redirect(session('url'));
header('location:'.session('url'));exit();