正如标题所说,我试图想象我是否可以制作对象,也就是按钮,表格是不可见的或隐藏的(无论属性是什么)。我之前从未考虑过这个,但是我试图学习一些网页设计并且需要这样做。基本上我试图同时拥有一个网站和CMS。因此,当我的管理员登录时,我希望certina只能由他看到。当我登录用户帐户时,只显示正常的内容,没有编辑/插入/更新按钮 下面我粘贴了每页上的登录验证。谢谢
<?php
$saved = false;
session_start();
error_reporting(0);
if (!array_key_exists('userName', $_SESSION)) {
header('Location: index.php');
}
-
<form name="form" action="<?php echo $editFormAction; ?>" method="POST">
<table width="600" border="1">
<tr>
<td><span id="sprytextarea1">
<label for="content">content</label>
<textarea name="content" id="content" cols="45" rows="5"></textarea>
<span class="textareaRequiredMsg">A value is required.</span></span></td>
</tr>
<tr>
<td>submit
<input type="submit" name="submit" id="submit" value="Submit" /></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form" />
</form>
答案 0 :(得分:1)
这很容易。由于您已经知道他们是否已登录每个页面,因此您只需在页面的HTML中检查它们即可。简单的想法如下:
<html>
<head></head>
<body>
<?php if ($_SESSION['userName'] == 'whateverTheNameShouldBe') : ?>
<span>Edit</span>
<?php endif; ?>
</body>
</html>
我会做的是为$ _SESSION添加一个键,指示用户是否是管理员。 $ _SESSION ['isAdmin'],可以是true / false布尔值。然后你可以做这样的事情:
<html>
<head></head>
<body>
<?php if ($_SESSION['isAdmin']) : ?>
<span>Edit</span>
<?php endif; ?>
</body>
</html>
由于您可以将PHP嵌入到HTML中,因此非常容易控制您在HTML页面中执行和不显示的内容。所有你必须确保你的$ _SESSION包含必要的标志,如果/ else条件,你可以使用。
请注意,建议您不要直接使用$ _SESSION全局变量。理想情况下,您需要某种会话处理程序类来存储数据库中的会话,但这可能对您要实现的目标有点过分。
答案 1 :(得分:1)
您提供的代码不会以任何方式帮助您...如果您想要这样的CMS,您需要有一个包含用户信息的表,如果是,您可能必须拥有一个名称,而不是添加一个名为user_level
,一旦你拥有该列,就可以拥有不同类型的用户级别,如admin,superadmin,manager,employee等,现在当用户登录时,从数据库中获取用户级别并将其保存在类似的会话中此
$_SESSION['user_level'] = $fetched_data['user_level'];
在会话中保存用户级别后,您只需使用if条件检查用户是否属于该特定级别并相应地显示数据,例如
if($_SESSION['user_level'] == 'admin') {
//The HTML or PHP code here will be only available for user having a user level of admin
}
因此,在您的情况下,如果您只想向管理员显示按钮,您可以将其设为像这样
<?php
if($_SESSION['user_level'] == 'admin') {
?>
<form method="post">
<input type="submit" name="whatever" />
<!-- Other Fields -->
</form>
<?php
}
?>
只有当登录用户的用户级别为admin
时,才会运行上述代码。
此外,您可以执行此操作以避免其他用户查看仅适用于管理员的页面,例如控制面板,因此您可以在页面顶部写下此条件,以查看用户是否为管理员而非显示page else将用户重定向到主页
<?php
session_start();
if($_SESSION['user_level'] != 'admin') {
header('Location: home.php');
exit;
}
?>
注意:在您之前,始终使用页面顶部的
session_start()
启动任何PHP代码或HTML