У меня есть сценарий входа, который ранее казался работающим, но теперь не работает для некоторых пользователей, включая некоторых, которые ранее работали.
SQL всегда работает в phpMyAdmin, но на веб-странице для некоторых пользователей этовсегда возвращает ноль строк.Вот код, где есть проблема:
$query_str = 'SELECT id, username, level_access, active FROM users WHERE username = "';
$query_str .= mysql_real_escape_string($uname).'"';
$query_str .= ' AND password = "'.mysql_real_escape_string($pwd).'"';
echo $query_str. "<br/>";
$result = mysql_query($query_str);
$num_result = mysql_num_rows($result);
echo $num_result. "<br/>";
Я потратил значительное время на тестирование любых вариантов и комбинаций, о которых мог подумать, добавил кавычки, изменил имена переменных, вставил другие переменные, упростилвыражения.Каждое изменение я проверял выводимый запрос в phpMyAdmin.Я добавил других пользователей, удалил пользователей и заново создал их, изменил уровни доступа и имена пользователей.
Всегда получал один и тот же результат, для некоторых пользователей логин всегда работает, для других он всегда не возвращает строк, даже еслиони возвращаются в phpMyAdmin
Наконец, я удалил инструкцию where, чтобы создать следующий оператор SQL:
$query_str = 'SELECT id, username, level_access, active FROM users';
На моей веб-странице всегда возвращается 8 строк, независимо от того, сколько там пользователейявляются.Если есть 8, 9 или 10 пользователей, возвращается 8 строк.Я удалил пользователей, чтобы было менее 8 пользователей, но на веб-странице phpMyAdmin по-прежнему возвращается 8 строк, каждый раз возвращается правильное число.
Очевидно, что проблема не в коде.Так что это вне моей компетенции.Что может быть причиной этой проблемы и как ее решить?