PHP:如何使用include安全地设置页面上的活动链接


PHP: How to securly set active link on page using includes

在之前的一篇文章"PHP使用include在页面上设置活动链接"中,有评论说"这太容易被黑客攻击了"。你能给我解释一下它是如何被入侵的,以及我如何用一种更安全的方法复制这个想法吗?

$page_id = $_REQUEST['page_id'];
 <ul>
          <li class="<?php echo ($page_id == "Home" ? "active" : "");?>">
 <a href="/">Home</a>
          </li>
          <li class="<?php echo ($page_id == "Apps" ? "active" : "");?>">
 <a href="#">Apps</a>
          </li>
          <li class="<?php echo ($page_id == "Forums" ? "active" : ""); ?>">
 <a href="#">Forums</a>
          </li>
        </ul>

我正在为一个网站建立我的第一个插件,我需要有php设置为活跃的链接,如果你是在主页或统计数据等页面上。所以安装可以在www.website.com/home/plugin/statistics。我需要能够设置类

  • 统计活动,如果他们是在不知道有多少层深在他们的网站我的插件安装的页面上。
  • 一个更好的方法可能是这样的:

    在页面文件(about.php, index.php等)中,在页面的最顶部提供唯一标识符:

    <?php
    $page_id = 'home';
    require_once('_menu.php');
    

    把你的导航栏分隔成一个_menu.php文件。

     <ul>
              <li class="<?php echo ($page_id == "Home" ? "active" : "");?>">
     <a href="/">Home</a>
              </li>
              <li class="<?php echo ($page_id == "Apps" ? "active" : "");?>">
     <a href="#">Apps</a>
              </li>
              <li class="<?php echo ($page_id == "Forums" ? "active" : ""); ?>">
     <a href="#">Forums</a>
              </li>
            </ul>