繁体   English   中英

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

[英]Simple User Registration & Login Script in PHP and MySQLi

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

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

使数据库字段类似user_roleuser_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!';
}

这只是示例,可以根据需要命名会话和功能。

最好的祝福。

登录后,用户名存储在$_SESSION['username'] 因此,我认为类似这样的方法应该可以解决问题:

if ($_SESSION['username'] === 'admin') {
   echo '<a href="...">admin</a>';
} else {
   echo 'admin';
}

当用户表中有一个额外的字段时,可以将其称为“ group”,并且该字段填充有组名“ 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']来检查会话,就像上面一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM