php - 只允许特殊级别的人登录

标签 php html mysql

我希望人们只能登录等级为 >= 500 的页面。 (我已经有一个注册页面。)我已经在这个网站上搜索了很多答案,但我找不到。

索引.php

if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))
{

     ?>

    <h1>Member Area</h1>
     <p>Thanks for logging in! You are <b><?=$_SESSION['Username']?><b> and your email address is <b><?=$_SESSION['EmailAddress']?></b></p>


    <ul>
        <li><a href="logout.php">Logout.</a></li>
    </ul>

    <?php
}
elseif(!empty($_POST['username']) && !empty($_POST['password']))
{
     $username = mysql_real_escape_string($_POST['username']);
    $password = md5(mysql_real_escape_string($_POST['password']));

     $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");

    if(mysql_num_rows($checklogin) == 1)
    {
        $row = mysql_fetch_array($checklogin);
        $email = $row['EmailAddress'];


        $_SESSION['Username'] = $username;
        $_SESSION['EmailAddress'] = $email;
        $_SESSION['LoggedIn'] = 1;

        header("Location: index.php"); //Redirect
    }
    else
    {
        echo "<h1>Error</h1>";
        echo "<p>Sorry, your account could not be found. Please <a href=\"index.php\">click here to try again</a>.</p>";
    }
}
else
{
    ?>

有什么办法可以做到吗? 我将不胜感激。

最佳答案

如果排名数据存储在 users 表中,则修改验证用户身份的查询如下:

"SELECT * 
FROM users 
WHERE Username = '".$username."' 
    AND Password = '".$password."'
    AND Rank >= 500"

这是一般的想法。

无论将此数据存储在何处,您都将使用用户名和(加密的)密码组合以及您的排名 >= 500 条件或您希望在允许登录之前满足的任何其他条件加入它。

关于php - 只允许特殊级别的人登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027826/

相关文章:

mysql - JSP插入SQL命令

PHPExcel对工作表进行排序并创建一个新工作表

php - 使用 Swiftmailer 发送多个附件

php - 查找列的平均值,避免空数据

php - 如何连接mysql的两个表并将多行连接成一个单元格?

javascript - ajax 调用中的 HTML5 视频

html - 固定侧边栏底部

php - Laravel 4 HTML 图像

php - 使用 cron 作业每月通过 MySQL SELECT 查询更改 PHP 变量

php - 在mysql中将选定的数据从一个数据库转储到另一个数据库