如何根据查询字符串使特定页面部分可见


How do I make a specific page section visible based on the querystring

我想要一个包含 3 个部分的页面:

<?php
session_start();
if (isset($_SESSION['login'])) {
    echo "Work";
    $_GET['id'] = 'edit';
?>
<a href="protected.php?if=edit">Edit post</a>
<?php
}
else {
    echo "notWork";
}
if (isset($_GET['id']) && $_GET['id'] == 'edit') {
    echo "Editing  . . .";
}?>

但是我不知道如何做那个页面"编辑",只有在我们去链接protected.php?if=edit时才可见。

好的。只需使用以下代码检查您的页面引用:

$_SERVER['HTTP_REFERER']

更多文档在这里http://php.net/manual/en/reserved.variables.server.php

我认为您应该使用 $_GET['if'] 而不是 $_GET['id'],因为 url 参数名为 if .

因此,如果我转到第 protected.php 页并且参数 ifedit ,请更改代码。有错别字!

<?php
    if (isset($_GET['if']) && $_GET['if'] == 'edit') {
        echo "Editing  . . .";
    }
?>
您可以根据

通过 URL 传递的 id 包含编辑页面。像这样:if($_GET['id'] == edit) include('edit.php')

但是,无需进一步检查,每个人都可以通过猜测正确的id值来查看页面。因此,您宁愿在每次包含某些内容时都对用户权限进行检查。

如果你想从 url 读取传递的值,你可以使用 $_GET['if'] 或 $_REQUEST['if'] 来获取该值。

另外,正如您所说"包含 3 个部分的页面",所以我认为您希望在某个时间仅在部分显示,那么您应该使用 elseif => http://php.net/manual/en/control-structures.elseif.php