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