如果while循环中的语句不起作用

时间:2014-09-22 11:26:59

标签: php

这是一个登录php代码,允许不同的用户登录和使用该应用程序       

$con=mysql_connect("localhost","root","");

mysql_select_db("sg",$con);


if(isset($_POST['uid'])){ $username = $_POST['uid']; } 

if(isset($_POST['pwd'])){ $password = $_POST['pwd']; } 





error_reporting(0);
$result=mysql_query("SELECT username,password from user where username = '$username' and password='$password'");

我想检查用户是否存在,然后为不同的用户打开不同的页面。在这三种情况下,页面都被重定向到Analyst.php

    while($info = mysql_fetch_array( $result ))     

        {

if($username='operations')
{
                 header("Location: view3.php");
}

if($username='finance')
{
         header("Location: view3.php");
}

if($username='Analyst')
{
         header("Location: Analyst.php");
}

}           
 echo "<script type='text/javascript'>alert('Invalid userID or password ');window.location=\"home.html\";</script>";    


 ?>

2 个答案:

答案 0 :(得分:1)

您正在为变量$username分配值,而不是将变量与字符串进行比较。试试:

if($username=='operations')
{
   header("Location: view3.php");
}

if($username=='finance')
{
   header("Location: view3.php");
}

if($username=='Analyst')
{
   header("Location: Analyst.php");
}

答案 1 :(得分:1)

您需要使用两个=标志:

if($username == 'finance')

单个=会为$username分配一个值。为了评估价值,您应该使用==

更好的是,您可以使用switch()声明:

while($info = mysql_fetch_array( $result ))     
{
    switch($username)
    { 
        case 'operations':
        case 'finnce':
            header("Location: view3.php");
            break;

        case 'Analyst':
            header("Location: Analyst.php");
            break;
    }
}           

echo "<script type='text/javascript'>alert('Invalid userID or password ');window.location=\"home.html\";</script>";    

另请注意,mysql_*系列函数现已弃用,不应在新代码中使用。您应该查看MySQLiPDO