Сначала:
$row = mysql_fetch_array($result) or die(mysql_error());
Если вы передадите неправильное имя пользователя или пароль, mysql_fetch_array () вернет FALSE, потому что нет строк, из которых можно извлечь.Это приводит к выполнению вашей or die(mysql_error())
части, что означает, что ваш сценарий умирает и ничего не выводит, поскольку mysql не завершился с ошибкой - что снова означает, что mysql_error () не имеет к вам никакого возврата.
Во-вторых, выиспользование mysql_num_rows () в строке $sql
, а не в переменной $result
, которая фактически содержит ресурс mysql, который вы должны использовать.
Перед использованием mysql_fetch_array () также следует проверить mysql_net_rows (), так чточто вы не пытаетесь извлечь некоторые данные, которых у вас нет.
Наконец, ваше решение полно недостатков безопасности.Вы передаете необработанные данные в свою базу данных mysql, что делает вас уязвимым для SQL-инъекций, и вы храните ваши пароли в виде простых текстовых значений в вашей базе данных (не текстовые файлы, а просто текстовые значения).
Выследует Google SQL инъекций и хеширования паролей, чтобы улучшить вашу безопасность.