Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果是php,则登录页面嵌套_Php_Html_Mysql - Fatal编程技术网

如果是php,则登录页面嵌套

如果是php,则登录页面嵌套,php,html,mysql,Php,Html,Mysql,通过使用嵌套if方法对代码进行分类,使用不同的用户登录php,但是,它将只运行第一个if,而不运行第二个if $sql= mysql_query("SELECT * FROM user WHERE id= '$id' AND password= '$password'"); $sql1 = "SELECT position FROM user WHERE id ='$id' AND password = ' $password'"; if(mysql_num_rows($sql) &

通过使用嵌套if方法对代码进行分类,使用不同的用户登录php,但是,它将只运行第一个if,而不运行第二个if

$sql= mysql_query("SELECT * FROM user WHERE id= '$id' AND password= '$password'");

$sql1 = "SELECT position FROM user WHERE id ='$id' AND password = ' $password'";    

if(mysql_num_rows($sql) > 0)

{
    if($sql1 = "student" )
嵌套的if从何处开始

    {
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Login Succesfully!.')
        window.location.href='google.com.my'
        </SCRIPT>");

        }
        else if($sql1 = "lecturer" )**it will not run until this if **
    {
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Login Succesfully123!.')
        window.location.href='www.yahoo.com'
        </SCRIPT>");

        }
            exit();
}
else{
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Wrong username password combination.Please re-enter.')
        window.location.href='login.html'
        </SCRIPT>");
exit();
}
}   
?>

在第二条sql语句中,更改“$password”;至“$password”

您不是在比较,而是在给$sql1赋值

改为

if($sql1 == "student" )
为确保密码安全,请使用

$sql1 = mysql_query("SELECT position FROM user WHERE id ='$id' AND password = ' $password'"); 
而不是

$sql1 = "SELECT position FROM user WHERE id ='$id' AND password = '$password'"; 
您必须使用mysql\u fetch\u数组或mysql\u fetch\u assoc从表中获取数据

如果情况需要改善呢

if($something == "student" ) 
不是

编辑

像这样尝试..并进行必要的更改

$sql1 = mysql_query("SELECT position FROM user WHERE id ='$id' AND password = ' $password'");
if($row = mysql_fetch_array($sql1))
{
   $result = $row['position'];
}
然后


您从未运行过将值返回到$sql1的查询。将mysql_查询放在$sql1查询周围,它将返回您想要的内容。此外,您没有中断查询以输入数据,您必须从id='的用户执行mysqli_querySELECT*$身份证。”密码=“$password”

另外,您应该转到mysqli\u查询,而不是mysql\u查询。

警告您的代码容易受到sql注入攻击,您不应以纯文本形式存储用户密码。首先,如果$sql1=student是赋值而不是比较,则需要a==。另外,$sql1不等于student。。这里有很多问题,@Alfie说,如果你写ifa=b,它会给a一个b的值。你应该写ifa==b,这意味着它会看到它们是否相等。在我全部更改之后,它将只显示空白页面,而不会显示google或yahoo站点。它仍然停留在php页面中。sql=mysql_querySELECT*FROM user,其中id='$id'和password='$password'$sql1=mysql_querySELECT position FROM user,其中id='$id'和password='$password';if$row=mysql_fetch_array$sql1{$result=$row['position'];}if mysql_num_rows$sql>0{if$result==student{echo'hi';echo window.alert'Login successfully.'window.location.href='google.com.my'}else{echo'hi1';最后关闭尾端的两个括号。同样,它仍然不起作用。我将直接运行if语句2,分别测试查询以确保它们起作用。如果查询工作正常,则以逐步方式转到每个if条件。感谢您的尝试:
if($something = "student" )
$sql1 = mysql_query("SELECT position FROM user WHERE id ='$id' AND password = ' $password'");
if($row = mysql_fetch_array($sql1))
{
   $result = $row['position'];
}
if($result == "student")
{
  //do something...
}