Я новичок в php и MySQL, и у меня может быть глупая ошибка, но я просто не могу найти ее .... Скрипт возвращает, что я ввел неправильный пароль или имя пользователя, но я полностью уверен, что оба находятся в базе данных, в таблице входа в систему и введены правильно. Ошибка должна быть в сценарии ..

<?php
session_start(); 

$db = mysqli_connect ("127.0.0.1", "root", "", "hobbybook")or die("Cannot connect to database");

//to check what user has written in form, make $username and $password using fields 'username' and 'password'
$username = $_POST['username'];
$password = $_POST['password'];

//to take care of MySQL injection 
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($username);
$password = mysqli_real_escape_string($password);

$sql="SELECT * FROM login WHERE username='$username' AND password='$password'";
$result = mysqli_query($db, $sql);

$count = mysqli_num_rows($result);

//if result is one, corresponding username and password were found    
if ($count==1) { 

$_SESSION['username']=$username;
header("location:memberarea.php");
}
else {
    echo $username, " - you have entered wrong username or password";
    //header("location:login.php");
}

mysqli_close($db);
?>

1 ответ1

0

Сделайте некоторую отладку. Остановите выполнение с помощью die() ИЛИ exit() и напечатайте результат подсчета, чтобы увидеть, все ли в порядке до этого момента.

$count = mysqli_num_rows($result);

echo $count;

exit(0);

Шаги для отладки:

  1. Проверьте, что $ count печатает. Если $ count не печатает 1, то
  2. повторите шаги с $ sql, распечатайте $ sql, скопируйте оператор из браузера и выполните непосредственно в консоли phpmyadmin или mysql. Проверьте результат,
  3. Если вы получили какую-то запись, проверьте соединение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .