2012-08-06 22 views
0

大家好,我正在試圖使用PHP的動態網頁,我認爲與$_SERVER['PATH_INFO']有問題。每當我按Home或關於它追加index.php.home或index.php.about到網址。這裏是我的代碼:試圖製作一個動態的網頁與PHP代碼

<body> 
<div style="width:800px; height:auto;"> 
<nav> 
    <a href="index.php/home">home</a> 
    <a href="index.php/about">about</a> 
</nav> 
<?php 
    $path = substr($_SERVER['PATH_INFO'],1); 
    echo $path; 
    if($path==""){ 
     $path = "home"; 
    } 
    if($path == "home"){  
     ?> 
     <h1> Home Page </h1> 
     <?php 
    } 
    elseif($path == "about"){ 
     ?> 
     <h1> About Page</h1> 
     <?php 
    }else{ 
     ?> 
     <h1> Page Not Found </h1> 
     <?php 
    } 
?> 
</div> 
</body> 

我可以幫助解決這個問題嗎?

+0

如果遇到某種語言功能的問題,請參閱手冊:['__SERVER'](http://de.php.net/manual/reserved.variables.server.php) - 您會發現更多信息甚至是用戶註釋,這些都可以幫助你走到第一個角落。 「ORIG_PATH_INFO」給你什麼? – hakre 2012-08-06 08:16:39

+0

嘗試使用絕對網址,例如'about'或'about'。這將解決您的問題。 – core1024 2012-08-06 08:18:47

回答

2

您應該爲此使用$ _GET變量。如果你有一個像

index.php?p=categories&sp=specific_category 

一個URL,那麼你就必須:

$_GET['p'] will be categories 
$_GET['sp'] will be specific_category 

所以

<body> 
<div style="width:800px; height:auto;"> 
<nav> 
<a href="index.php?p=home">home</a> 
<a href="index.php?p=about">about</a> 
</nav> 
<?php 
    if(!isset($_GET['p']) || $_GET['p'] == 'home'){ 
?> 
<h1> Home Page </h1> 
<?php 
    } 
    elseif($_GET['p'] == "about"){ 
?> 
<h1> About Page</h1> 
<?php 
    } else { 
?> 
<h1> Page Not Found </h1> 
<?php 
    } 
?> 
</div> 
</body> 
0

把這樣

<?php 
$protocall="http://www."; 
$host= $_SERVER['SERVER_NAME']; 
$ext=".com"; 
$site=$protocall.$host.$ext; 

?> 

<nav> 
    <a href="<?php echo $site; ?>/index.php/home">home</a> 
    <a href="<?php echo $site; ?>/index.php/about">about</a> 
</nav> 

一個完整的路徑定義$網站位於全球文件