2013-11-22 55 views
0

我在home.php文件下面的代码:PHP + HREF重定向

<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”相同的文件夹中。我想它不能工作,因为我认为它应该,所以有人可以解释我链接被按下时发生了什么?

+2

在附注中,如果您不能有两个elses。 – j08691

+1

你的href不需要是'home.php?page = my_page_x'吗? –

+0

可能更容易使用'case',但那只是我。 –

回答

0

看起来像php只会在服务器上执行,而不是通过浏览器作为简单脚本执行。

1

你有没有想过使用

header("Location: $filename"); 

这将重新加载新的URL页面。

+0

我想我可以将href设置为href =“my_page_x.php”,它可以工作,但我的目标是理解为什么此代码在它应该时不起作用(它是从一个的YouTube教程) – Anton

0

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

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

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

+0

好吧,我的服务器是我自己的个人电脑上有窗户 - -btw,thx为GET提示 – Anton