如何根据查询字符串显示特定页面部分

时间:2012-06-30 08:19:12

标签: php get

我希望有一个包含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时才会显示。

5 个答案:

答案 0 :(得分:2)

ok.silen使用以下代码检查您的页面引用:

$_SERVER['HTTP_REFERER']

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

您可以根据您通过网址传递的ID来包含编辑页面。 类似于:if($_GET['id'] == edit) include('edit.php')

但是,如果没有进一步检查,每个人都可以通过猜测id的正确值来查看页面。因此,每次包含某些内容时,您都应该检查用户权限。

答案 4 :(得分:1)

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

另外正如您所说的“有3个部分的页面”,所以我认为您只想在部分时间显示,那么您应该使用elseif =&gt; http://php.net/manual/en/control-structures.elseif.php