2012-11-15 68 views
0
 $username; 
     $welcomeMessage; 
     if(isset($_SESSION['username'])){ 
      $username = $_SESSION['username']; 
      $welcomeMessage = "Hello $username! | "; 
      $welcomeMessage .= '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/nmc/Admin/LogoutProcessor.php">Logout</a>'; 
     } else { 
      $welcomeMessage = "Welcome | "; 
      $welcomeMessage .= '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/nmc/Admin/LoginPage.php">Login</a>'; 
     } 

以上回報的代碼 「文件:/// C:/xampp/htdocs/nmc/Admin/LoginPage.php」

我使用XAMPP開發網站,基本上都使用自己的服務器處理,所以我不能使用上面的鏈接。我有不同的目錄中有幾個網頁需要鏈接到LoginPage.php,我需要一個標準鏈接。以上代碼位於不同目錄中的其他頁面可以調用它的類中。

誰能告訴我如何解決這個問題?

謝謝!

+3

如何去除'$ _ SERVER [ 'DOCUMENT_ROOT']'?你爲什麼首先使用它? – Carsten

+3

或嘗試使用$ _SERVER ['HTTP_HOST']來代替;這應該給你一些東西沿線http:// localhost – scott

+0

@Carsten因爲上面的代碼是在一個類來建立一個網頁。來自不同目錄的許多頁面調用這個類。 – Boon

回答

10

$ _SERVER [「DOCUMENT_ROOT」]返回

在其下當前腳本的文檔根目錄,作爲服務器的配置文件中定義。

你可以使用像<a href="/nmc/Admin/LoginPage.php">Login</a>

5
$_SERVER['DOCUMENT_ROOT'] 

返回一個物理文件系統路徑$_SERVER['HTTP_HOST']或絕對路徑。這不是一個HTTP URL。

嘗試刪除它使用絕對URL路徑:

<a href="/nmc/Admin/LoginPage.php">Login</a> 

,或者嘗試使用$ _ SERVER [ 'HTTP_HOST']來代替。

BTW,read $_SERVER documentation

7

在這種情況下,創建config.php文件並將其保存在根目錄中總是更好。在配置文件中,您定義了幾個參數。

在每個頁面調用該配置文件。你的配置文件可以類似於下面的配置文件。

define('APP_NAME',"beta"); 
define('HTTP_SERVER', 'http://localhost/'); 
define('SITE_NAME', 'http://localhost/'); 
define('DOCUMENT_ROOT',$_SERVER['DOCUMENT_ROOT'].APP_NAME); 

您也可以定義你的目錄,圖片,CSS等,您認爲會在多個地方使用。

所以不是

$welcomeMessage .= '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/nmc/Admin/LogoutProcessor.php">Logout</a>'; 

你可以寫,

$welcomeMessage .= '<a href="'.HTTP_SERVER.'/nmc/Admin/LogoutProcessor.php">Logout</a>'; 
+0

借調,我一直這樣做。 :) – Maccath

0

如果你使用WAMP服務器或類似的, 「/」 是「www」 的文件夾的文檔根目錄,所以你必須寫"/yoursitesfoldername/nmc/Admin/LogoutProcessor.php"

0

我繼承了一個隨處可用的站點,所以當我用xampp去測試它時,我最終創建了一個虛擬主機來加載站點。

請參閱本文的詳細信息:http://www.dreamincode.net/forums/topic/307265-change-serverdocument-root-path-for-xammp-light/

這裏是我的httpd-vhosts.conf文件:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/xampp/htdocs/examplesite/nested/path/to/content" 
    ServerName example.localhost 
    ErrorLog "logs/example.localhost-error.log" 
    CustomLog "logs/example.localhost-access.log" common 
</VirtualHost> 
相關問題