0

大家好,我正在尝试使用 PHP 制作动态网页$_SERVER['PATH_INFO'],但我认为我遇到了问题。每次我按 home 或 about 时,都会将 index.php.home 或 index.php.about 附加到 url。这是我的代码:

<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>

我可以帮助解决这个问题吗?

4

2 回答 2

2

您应该为此使用 $_GET 变量。如果你有一个像

index.php?p=categories&sp=specific_category

那么你将拥有:

$_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> 
于 2012-08-06T08:15:16.400 回答
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>

在全局文件中定义 $site

于 2012-08-06T11:21:50.563 回答