当我输入正确的密码和用户名时,我的代码进入了else语句。当我输入错误的用户名和密码时,它也会转到else语句。这段代码我做错了什么?我在Windows操作系统中使用较新版本的wamp服务器软件。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "php";
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
$login=$_POST['username'];
$passwd=$_POST['passwd'];
if($username!=''&&$passwd!='')
{
$query="select * from users where login='".$username."' and passwd='".$passwd."'" or die("Connection failed: " . mysqli_connect_error());
$res=mysqli_fetch_row($query);
if($res)
{
$_SESSION['username']=$login;
echo "welcome to php";
}
else
{
echo'You entered username or password is incorrect';
}
}
else
{
echo'Enter both username and password';
}
?>
<html>
<body>
<form action="login3.php" method="post">
Username:<br>
<input type="text" name="username"><br>
Password:<br>
<input type="PASSWORD" name="passwd">
<BR>
<intput type="submit" value="login" name="submit"><INPUT Type="submit "value="reset">
</form>
</body>
</html>
答案 0 :(得分:2)
首先,您的代码中存在许多错误的内容,请参阅@David评论。我认为你没有解雇查询。以下是要修改的代码:
if($login!=''&& $passwd!='')
{
$query="select * from users where login='".$login."' and passwd='".$passwd."'";
$result=mysqli_query($conn,$query);
if(!$result)
die("Query Failed: " . mysqli_error($conn));
else{
if(mysqli_num_rows($result)>0)
{
$_SESSION['username']=$login;
echo "welcome to php";
}
else
{
echo'You entered username or password is incorrect';
}
}
}
答案 1 :(得分:0)
您目前正在尝试使用您的数据库用户名(root)而不是来自POST的用户名登录。
这是你的错误:
function __construct($dbHost,$dbUsername,$dbPassword,$dbName)
应该是:
if($username!=''&&$passwd!='')