2016-07-17 34 views
1

這裏是我的網站的文件夾結構:如何將頁面重定向到自己?

myweb/ 
    index.php 
    files/ 
     autoloader.php 
     login.php 

這裏是我的腳本:

// login.php 

class login{ 

    public function __construct() { 
     function signed(){ 
      header('Location: ../'); 
      exit; 
     } 
    } 

    public function index(){ 

     echo isset($_SESSION['error_message']) ? $_SESSION['error_message'] : null; 

     if ($_SESSION['login'] == 1) { 
      signed(); 
     } 

     $_SESSION['login'] = 1; 

     if ($_SESSION['login'] == 1) { 
      $_SESSION['error_message'] = 'something is wrong'; 
      header('location: ../login?arg=value'); 
     } 
    } 
} 

當我加載此路徑:

localhost/myweb/login 

下面是兩種情況:

  1. $_SESSION['login']等於1:我的劇本我重定向到該路徑:localhost/myweb
  2. $_SESSION['login']不等於1:我的劇本我重定向到該路徑:localhost 第一種情況是好的,我的意思是按預期工作。但第二種情況是錯誤的,我的意思是它沒有按預期工作。在第二種情況下,它應該將我重定向到此路徑:localhost/myweb/login?arg=value,而不是localhost。那麼我該如何解決它?

注意:所有頁面都通過index.php。另外index()函數是默認的,不需要在url中提及它。


我有一個解決辦法:我可以使用:

header("Refresh:0"); 

相反的:

header('location: ../login?arg=value'); 

但只是一個小問題:傳遞參數。那麼我怎樣才能同時使用header("Refresh:0");?arg=value

回答

1

您可以使用:

header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']); 

https://secure.php.net/manual/en/reserved.variables.server.php

+0

沒有'QUERY_STRING',我想現在添加它。因此,在這種情況下,$ _SERVER ['QUERY_STRING']'總是空的。 –

+0

使用'$ _SERVER ['PHP_SELF']。「?」。'和查詢字符串後 –

+0

謝謝.. upvote。我會嘗試一下,讓你知道它的工作與否。 –