我想要一个包含 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
页并且参数 if
是 edit
,请更改代码。有错别字!
<?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