php + href重定向

时间:2013-11-22 20:33:33

标签: php href redirect

我的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”和“my_page_2.php”确实存在,并且与“home.php”位于同一文件夹中。我想它不会像我认为的那样有效,所以有人可以解释一下当链接被压迫时真正发生了什么吗?

3 个答案:

答案 0 :(得分:1)

您是否考虑过使用

header("Location: $filename");

这会在新网址上重新加载页面。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

似乎php只会在服务器上执行,而不是由浏览器执行简单的脚本。