0

我想要一个包含 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

4

5 回答 5

2

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

$_SERVER['HTTP_REFERER']

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

于 2012-06-30T08:25:48.010 回答
1

我认为你应该使用$_GET['if']而不是$_GET['id']作为 url 参数被命名if

于 2012-06-30T08:24:10.250 回答
1

所以,如果我去页面protected.php并且参数ifedit,请更改代码。有错别字!

<?php
    if (isset($_GET['if']) && $_GET['if'] == 'edit') {
        echo "Editing  . . .";
    }
?>
于 2012-06-30T08:29:13.020 回答
1

您可以根据通过 URL 传递的 id 包含编辑页面。就像是:if($_GET['id'] == edit) include('edit.php')

但是,这样做无需进一步检查,每个人都可以通过猜测id. 因此,您宁愿在每次包含某些内容时检查用户权限。

于 2012-06-30T08:30:08.393 回答
1

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

也正如你所说的“页面有 3 个部分”,所以我认为你只想在某个部分显示,那么你应该使用 elseif => http://php.net/manual/en/control-structures.elseif.php

于 2012-06-30T08:33:25.473 回答