когда я ввел правильный пароль и имя пользователя, мой код входит в оператор else. Когда я ввожу неправильное имя пользователя и пароль, он также переходит в инструкцию else. Что я делаю неправильно с этим кодом? Я использую новую версию программного обеспечения сервера Wamp в операционной системе Windows.форма входа в php с проверкой mysql
<?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>
' " что я сделал не так с этим кодом"' - *** Так много вещей *** Для начала, ваш код широко открыт для SQL-инъекций. Кроме того, вы сохраняете пароли пользователей в виде обычного текста, который ** абсолютно безответственен ** для ваших пользователей. Вы также никогда не выполняете * ваш запрос к базе данных, просто пытаетесь извлечь строку из строки *. Вы также не проверяете ошибки (потому что вы определенно получаете хотя бы один). И, наконец, вы пытаетесь войти в каждый пользователь как «root», потому что вы используете '$ username' в своем запросе вместо' $ login'. – David
Я очень новичок в Mysql с Php.i напишу этот код в соответствии с моими знаниями, отличное объяснение. Спасибо за то, что потратили на это время. –