您好我使用下面的代码登录我的系统,我想知道是否有人可以帮助我我正在尝试添加管理员功能,因此它会显示一个链接说管理员,如果没有管理员那么它会禁用链接。
http://www.allphptricks.com/simple-user-registration-login-script-in-php-and-mysqli/
答案 0 :(得分:0)
使数据库字段类似于user_role
或者根据需要命名,但使用它来存储用户角色/权限。
用户从该字段登录到会话的商店数据并执行条件检查。
if (isset($_SESSION['user_role'] && $_SESSION['user_role'] === 'admin')
{
// user have admin privilege
}
为了可重用性而创建函数。
function isAdmin()
{
if (isset($_SESSION['user_role'] && $_SESSION['user_role'] === 'admin')
{
return true;
}
return false;
}
用法:
if (isAdmin()) {
echo 'You are admin!';
}
这只是一个例子,可以根据需要为会话和功能命名。
最好的问候。
答案 1 :(得分:-1)
登录后,用户名存储在$_SESSION['username']
中。
所以我觉得这样的事情可以解决问题:
if ($_SESSION['username'] === 'admin') {
echo '<a href="...">admin</a>';
} else {
echo 'admin';
}
如果您的用户表中有一个额外的字段,我们称之为“组”,并且此字段填充了组名“admin”,您可以在登录脚本的此时在会话中填写此组名称:
$rows = mysqli_num_rows($result);
if($rows==1){
$row = mysqli_fetch_assoc($result);
$_SESSION['username'] = $username;
$_SESSION['group'] = $row['group'];
// Redirect user to index.php
header("Location: index.php");
}'
以及稍后在代码中使用$_SESSION['group']
而不是$_SESSION['username']
检查会话,如上所述。