我希望有一个包含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
时才会显示。
答案 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
并且参数if
是edit
,请更改代码。有一个错字!
<?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