连接部分工作正常,但是当涉及到数据库时,它不会检查它们是否存在。
这会检查连接
<?php
$DB_URL="localhost";
$DB_Uname="root";
$DB_Password="";
$DB_Schema="test";
global $DB_URL, $DB_Uname, $DB_Password, $DB_Schema;
$con=mysqli_connect($DB_URL,$DB_Uname,$DB_Password,$DB_Schema);
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
这将从用户名和密码文本字段中获取输入,并检查它们是否都存在于数据库中
$sql="SELECT * FROM users WHERE Username='$_POST[Name]' && Password='$_POST[Password]';";
$rs = mysqli_query($con,$sql);
$data = mysqli_fetch_array($rs, MYSQLI_NUM);
if($data[0] > 1)
{
echo "You are now logged in<br>";
}
else
{
die('Incorrect login or password or User Does not exist: ' . mysqli_error($con));
}
答案 0 :(得分:0)
在SQL中,您必须使用AND
而不是&&
此外,您的代码可以通过SQL注入,使用PDO或参数化查询
答案 1 :(得分:0)
1-u在后期变量中没有使用引号
2-u在sql var
的末尾使用了双分号3-u没有过滤帖子数据
4-better use and而不是&amp;&amp;
你应该在用户名和passowrd的后期变量中使用引号 在执行查询之前更好地适应你的变量 $ USERNAME = $ DB-&GT; real_escape_string($ _ POST [ '用户名']); $密码= $ DB-&GT; real_escape_string($ _ POST [ '密码']);
$sql="SELECT * FROM users WHERE Username='$username' AND Password='$password'";