使用php进行登录名和密码的控件身份验证

时间:2019-04-30 10:28:09

标签: php authentication

我需要您的帮助,以了解如何从数据库进行登录名和密码的控件身份验证。

我使用React Native创建了图形界面(表单登录密码), 我用PHP创建了ServiceWeb,用于控制数据库中是否存在登录名和密码。

在我的图形界面中,我有两种类型的用户:(Agee和Aidant), 1

下的屏幕截图

因此,我需要创建一个ServiceWeb来控制数据库的登录名和密码:如果连接了“ Agee”类型,它将移至“ Profile.js”页面, 否则重定向到页面“ List.js”。

因此,我尝试使用以下代码:

<?php
    $db_username = '****';
    $db_password = '****';
    $db_name     = '****';
    $db_host     = '****.db';
    $db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
               or die('could not connect to database');
    if (mysqli_connect_errno()){
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    header('Content-Type: application/json');
    $jsondata = file_get_contents("php://input");

    $data = json_decode($jsondata);
    $id = '';


    if($type=="Agee"){
        $sql="SELECT * FROM onLineLogin WHERE email='".$email."' AND motpass='".$motpass."'";
    }else{
        $sql="SELECT * FROM onLineLogin WHERE email='".$email."' AND motpass='".$motpass."'";
    }
    $resultat=mysqli_query($db,$sql);

    if($resultat){
        if(mysqli_num_rows($resultat)==0){
            echo 'Utilisateur ou mot de passe incorrecte !!';
        }else if($type=="Aidant"){
            $row=mysqli_fetch_assoc($resultat);
                header('location:Liste.js');
        }else{
            $row=mysqli_fetch_assoc($resultat);
            header('location:Profile.js');
        }   
    }                    
    mysqli_free_result($resultat);
    mysqli_close($db);

?>

但是没有任何变化,即使数据库中不存在登录名和密码,我也可以进行身份​​验证。

请帮助!并提前感谢:)

1 个答案:

答案 0 :(得分:-1)

这似乎也需要进行SQL注入:

if($type=="Agee"){
    $sql="SELECT * FROM onLineLogin WHERE email='{$email}'";
}else{
    $sql="SELECT * FROM onLineLogin WHERE email='{$email}'";
}
$resultat = mysqli_query($db,$sql);

if($resultat){
    if(mysqli_num_rows($resultat)==0){
        echo 'Utilisateur ou mot de passe incorrecte !!';
    }else 
        $row=mysqli_fetch_assoc($resultat);
        if($row['motpass'] == $motpass && $row['email'] == $email){
             if($type=="Aidant"){
                 header('location:Liste.js');
             }else{
                 header('location:Profile.js');
             }
        }
    }   
}                    
mysqli_free_result($resultat);
mysqli_close($db)