简单的用户注册和PHP和MySQLi中的登录脚本

时间:2017-11-08 16:11:24

标签: php login

您好我使用下面的代码登录我的系统,我想知道是否有人可以帮助我我正在尝试添加管理员功能,因此它会显示一个链接说管理员,如果没有管理员那么它会禁用链接。

http://www.allphptricks.com/simple-user-registration-login-script-in-php-and-mysqli/

2 个答案:

答案 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']检查会话,如上所述。