【问题标题】:php menu navigation includephp菜单导航包括
【发布时间】:2013-11-29 08:42:10
【问题描述】:

我正在处理我的主页,并且在我的布局中有一个包含的 navigation.php。一世 基本上,布局中的代码是

DIV <?php include ('header.php'); ?>
DIV <?php include ('navigation.php'); ?>
DIV <?php
  if(is_null($GET["page"])) {
    $page = "home";
  }else{
    $page = $GET["page"];
  }
   include(''.$page.'.php');
?>

navigation.php中的代码是

<ul>
<li><a href='index.php?page="home"'><span>Home</span></a></li>
<li><a href='index.php?page="explore"'><span>Explore</span></a></li>
<li><a href='index.php?page="contact"'><span>Contact</span></a></li>
</div>
</ul>

不过,当点击链接时,主页仍然被包含在内。

【问题讨论】:

    标签: php menu navigation


    【解决方案1】:

    喂!

    在列表标签​​中你有一个额外的撇号..它们不是必需的。

    在 html 语言中的链接标签 &lt;a href="src/file.html"&gt;click me&lt;/a&gt;

    如果你想使用 php get-method,你可以编写简单的代码:

    <a href="?page=contact">Im the contact link</a>
    

    等等

    希望能帮到你

    顺便说一句: 使用我以前的链接格式,我给你一个工作示例代码(我认为它更好,更安全) 喂!

    一个工作示例:

    <?php  
    if(!empty($_GET['page']))  
    {  
    if (!file_exists($_GET['page'].".php") )  
    {  
    include("home.php");  
    }  
    else  
    {  
    include($_GET['page'] .".php");  
    }  
    }  
    else  
    {  
    include("home.php");  
    }  
    ?> 
    

    【讨论】:

    • 感谢两位非常快速的回答!我刚刚尝试了第二种方法 - 现在效果很好 - 原样。
    【解决方案2】:

    首先回答您的问题:url 参数的 PHP 超全局是 $_GET,而不是 $GET

    正确的代码是:

    DIV <?php include ('header.php'); ?>
    DIV <?php include ('navigation.php'); ?>
    DIV <?php
      if (!isset($_GET["page"]) || $_GET["page"] == "home") {
        $page = "home";
      } else if ($_GET["page"] == "explore") {
        $page = "explore";
      } else if ($_GET["page"] == "contact") {
        $page = "contact";
      } else {
        $page = "error";
      }
    
      include($page . '.php');
    ?>
    

    您应该会收到未定义变量的通知,这将帮助您调试此类内容。检查您的 error_reporting 设置以确保您在开发期间输出通知,或查看您的日志。

    其次,绝不允许用户输入未经清理直接进入您的程序。上面的示例将让您打开File Inclusion Vulnerability。相反,请使用用户输入来检查某个值,如果您想执行代码示例中的操作,请手动分配包含值。

    【讨论】:

      猜你喜欢
      • 2014-11-22
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      相关资源
      最近更新 更多