php + href redirection


php + href redirection

我的home.php文件中有下一个代码:

<html>    
    <body>
    <table border="3">
        <tr><td>
            <a href="?page=my_page_1">Page 1</a>
        </td></tr>
        <tr><td>
            <a href="?page=my_page_2">Page 2</a>
        </td></tr>
    </table>
    <?php
        if(isset($_GET['page'])){
            $page = $_GET['page'];
            $filename = $page.'.php';
            if(file_exists($filename)){
                include($filename);
            }
            else{
                echo("File does not exist");
            }
        }
        else{
            echo("Page does not set");
        }
    ?>
    </body>    
</html>

当其中一个链接被按下时,我希望页面被重新加载为某个.php文件。但是,由于某种原因,什么也没发生。文件"my_page_1.php"answers"my_page _2.php"确实存在,并且与"home.php"位于同一文件夹中。我想它并没有像我认为的那样工作,所以有人能解释一下当链接被按下时到底发生了什么吗?

你想过使用吗

header("Location: $filename");

这将在新的url上重新加载页面。

您需要配置服务器,以便允许以?开头的链接?页否则,您将需要按照注释中的建议添加当前url。

您可以查看Apache mod_rewrite以了解更多详细信息。使用mod_rewrite的更好方法是保留页面名称,但删除扩展名,即home?page=my_page_x。这是更灵活的,并允许搜索友好和更可读的网址。

注意:在生产中,您不应该包含来自类似GET变量的文件,因为它会引发很多安全问题。

php似乎只能在服务器上执行,而不能作为浏览器的简单脚本执行。