Php 如何限制某些注册用户登录?

Php 如何限制某些注册用户登录?,php,jquery,mysql,Php,Jquery,Mysql,我想限制注册用户登录,而不仅仅是 用户名和密码,它应该: 如果用户投票_status='a',则允许用户使用其 用户名和密码 如果投票状态为“b”,则应限制用户登录,并提示您不允许登录其他用户名/密码不正确。 但我不知道该怎么做,因为我是一个编码新手。我真的需要帮助。这就是我到目前为止所能做到的 <?php define('DB_HOST', 'localhost'); define('DB_NAME', 'university portal'); define('DB_USER','ro

我想限制注册用户登录,而不仅仅是 用户名和密码,它应该:

如果用户投票_status='a',则允许用户使用其 用户名和密码 如果投票状态为“b”,则应限制用户登录,并提示您不允许登录其他用户名/密码不正确。 但我不知道该怎么做,因为我是一个编码新手。我真的需要帮助。这就是我到目前为止所能做到的

<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'university portal');
define('DB_USER','root');
define('DB_PASSWORD','password007');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
/*
$ID = $_POST['user'];
$Password = $_POST['pass'];
*/
function SignIn()
{
    session_start();   //starting the session for user profile page
    if(!empty($_POST['UserName']))   //checking the 'user' name which is from Sign-In.html, is it empty or have some text
    {
        $query = mysql_query("SELECT Username, Password, voting_staus  
                                FROM voters 
                            where Username = '$_POST[UserName]', 
                                Password = '$_POST[password]' 
                                voting_status = 'a' ") 
                    or die(mysql_error());

        $row = mysql_fetch_array($query) or die(mysql_error());

        if(!empty($row['Username']) AND !empty($row['Password'])){
            if($row['voting_status']){
                $_SESSION['Username'] = $row['Password'];
                echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";

            }
        }
        elseif($row[voting_status]=='b') {
            echo "You are not allow to Login Here";
        } else {
            echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
        }
    }
}

if(isset($_POST['submit'])) {
    SignIn();
}

?>

请做这些更改

if(!empty($_POST['UserName'])&& !empty($_POST['password']) )   //checking the 'user' name which is from Sign-In.html, is it empty or have some text
    {
        $query = mysql_query("SELECT Username, Password, voting_staus  
                                FROM voters 
                            where Username = '$_POST[UserName]' and 
                                Password = '$_POST[password]' 
                                 ") 
改变这个

        if($row['voting_status'] == 'a'){  // change by mo
            $_SESSION['Username'] = $row['Password'];
            echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";

我在您的查询中进行了更改删除,使用和在何处条件以及删除投票状态。您在查询中对状态使用了错误的拼写

每次在新代码中使用数据库扩展时,它都会被弃用,并且在PHP7中已经存在多年,并且永远消失。如果您只是在学习PHP,请将精力花在学习PDO或mysqli数据库扩展和准备好的语句上。您的脚本有可能出现以下情况:查看一下发生了什么,甚至可以使用您可以在选民表中添加一列,以指示是否允许用户登录并检查是否!空$row['IsAllowed']一些合理的代码缩进将是一个好主意。它帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能需要在几周/几个月内修改此代码,最后您会感谢我。请检查STATUS的拼写。请考虑RiggSi所提到的事项。已经尝试过您的更改而不是错误,但是它没有成功登录到用户配置文件页,只加载页面。