Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
在mysql数据库上检查登录凭据的PHP代码?_Php_Mysqli - Fatal编程技术网

在mysql数据库上检查登录凭据的PHP代码?

在mysql数据库上检查登录凭据的PHP代码?,php,mysqli,Php,Mysqli,我有一个HTML页面,它向Web服务器上的PHP文件发送一个Ajax HTTP请求,以检查用户名或密码是否有效?我所做的只是在数据库上进行选择,以检查它是否存在这是正确的方法还是我有更好的方法来检查凭据 <?php header("Access-Control-Allow-Origin: *"); $usrnm = $_POST['usrnm']; $pswdlogin = $_POST['pswdlogin']; $con=mysqli_connect("localhost","r

我有一个HTML页面,它向Web服务器上的PHP文件发送一个Ajax HTTP请求,以检查用户名或密码是否有效?我所做的只是在数据库上进行选择,以检查它是否存在这是正确的方法还是我有更好的方法来检查凭据

<?php

header("Access-Control-Allow-Origin: *");

$usrnm = $_POST['usrnm'];
$pswdlogin = $_POST['pswdlogin'];

$con=mysqli_connect("localhost","root","root123","bank","3306");


mysqli_select_db($con,"bank");

$result = mysqli_query($con,"SELECT * FROM registration WHERE email = '".$usrnm."' AND password='".$pswdlogin."' ");

$rows = mysqli_num_rows($result); 

if ($rows == 1) {
  echo "Valid!";
}

else{
 echo "In Valid!";

}

mysqli_close($con);

?>


为什么在查询中同时使用单引号和双引号。真的没有必要。请使用单引号或双引号。

将此
WHERE-email=“.usrnm.”和password=“.pswdlogin.”“
更改为
WHERE-email=””“$usrnm.”和password=”“$pswdlogin.”“
但使用更安全的密码存储方法,而不是纯文本。然后,您需要使用
mysqli\u num\u rows()
进行检查,以检查两者是否都满足该条件。我监视SQL注入。您必须转义任何用户数据。@MikeW或else不以纯文本形式存储数据,逻辑有点奇怪<代码>如果($rows>=1)
?您希望在同一个表中有重复的用户吗?不要使用纯文本存储密码!
"SELECT * FROM registration WHERE email = '".$usrnm."' AND password='".$pswdlogin."' "