我需要您的帮助,以了解如何从数据库进行登录名和密码的控件身份验证。
我使用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);
?>
但是没有任何变化,即使数据库中不存在登录名和密码,我也可以进行身份验证。
请帮助!并提前感谢:)
答案 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)