0 голосов
спросил от в категории PHP
Строка 14 - это
$active = $row['active'];
Наиболее вероятной причиной ошибки является то, что ваша таблица SQL не содержит столбца с именем «active».

Вы также должны проверить, был ли запрос успешным (см. пример кода на
$active = $row['active'];
# [#^ #]), и строки возвращаются (вызов mysqli_num_rows () перед извлечением). В противном случае доступ к $ result и $ row тоже не удастся.

Наконец, я надеюсь, что ваш учитель скоро расскажет вам о #SQL injection - Wikipedia # [#^ #].

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
0 голосов
ответил от
В случае неправильного имени пользователя или пароля запрос ничего не возвращает, вам нужно проверить, была ли строка возвращена или нет, прежде чем пытаться ее прочитать.

$sql = "SELECT * FROM admin WHERE username = '$myusername' and password = '$mypassword'";

Не решение вашего вопроса, но еще одна проблема, которую вы имеете.
Никогда не создавайте SQL-запрос путем конкатенации строк. Рано или поздно вы сделаете это с помощью пользовательских входов, и это откроет дверь для уязвимости с именем «SQL injection», это опасно для вашей базы данных и подверженности ошибкам.
Одиночная цитата в названии и вашем крах программы. Если пользователь вводит такое имя, как «Брайан О'Коннер», это может привести к краху вашего приложения, это уязвимость в SQL-инъекции, и авария является наименьшей из проблем, вредоносного ввода пользователя и продвигается к командам SQL со всеми учетными данными.
$sql = "SELECT * FROM admin WHERE username = '$myusername' and password = '$mypassword'";
# [#^ #]
#SQL Injection # [#^ #]
#SQL Injection Attacks by Example # [#^ #]
#PHP: SQL Injection - Manual # [#^ #]
#SQL Injection Prevention Cheat Sheet - OWASP # [#^ #]
< DIV>

Категории

Добро пожаловать на сайт DraftingCode Q&A (ИТ ответы), где вы можете задавать вопросы и получать ответы от других членов сообщества.

Связанных вопросов не найдено

...