Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Где ошибка?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
opadai
Отправлено: 18 Января, 2013 - 12:31:13
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




выдает ошибку
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given i

на 24линий
вот сам код

PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  5. <title>Вход</title>
  6. </head>
  7.  
  8. <body>
  9.   <div align="center" id="error">
  10. <?PHP
  11. if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
  12. if(empty($_POST['login'])){ //если переменная логина пуста или не существует
  13. echo"Вы не ввели логин"; // выводим сообщение об ошибке
  14.     }elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
  15. echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
  16.     }elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует
  17. echo"Вы не ввели пароль"; // выводим сообщение об ошибке
  18.     }elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
  19. echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
  20.     }else{
  21.     $login = $_POST['login']; //присваеваем переменную
  22.     $password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности
  23.     $query = mysql_query("SELECT * FROM `users`  WHERE `login`='$login' AND `password`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
  24.     $row = mysql_num_rows($query); // считаем количество рядов результата запроса
  25.     if($row>0)    //если их больше 0
  26.     {
  27.         echo "Вы успешно авторизовались!"; // выводим сообщение об удачной авторизации!
  28.         }else{
  29.         echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
  30.         }
  31.  
  32.     }
  33.  
  34. }
  35. ?>

(Отредактировано автором: 18 Января, 2013 - 12:32:27)

 
 Top
spsu
Отправлено: 18 Января, 2013 - 12:35:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Нояб. 2012  


Помог: 3 раз(а)




opadai, запрос некорректно выполняеться значит.
См. лог ошибок mysql...
Или 23 строку перепишите так, $query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'") or die(mysql_error());
 
 Top
opadai
Отправлено: 18 Января, 2013 - 12:39:01
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




spsuа блин тупанул забыл инклуде сделать

(Отредактировано автором: 18 Января, 2013 - 12:40:20)

 
 Top
spsu
Отправлено: 18 Января, 2013 - 12:41:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Нояб. 2012  


Помог: 3 раз(а)




[quote=opadai][/quote]
Надо указать какую БД юзать функц.
PHP:
скопировать код в буфер обмена
  1. mysql_select_db(Имя БД, Идентификатор соеденения);
 
 Top
DelphinPRO
Отправлено: 18 Января, 2013 - 13:02:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




opadai пишет:
блин тупанул забыл инклуде сделать

не совсем верно
вы забыли сделать проверку результата запроса
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("
  2.   SELECT *
  3.   FROM `users`
  4.   WHERE `login`='$login'
  5.   AND `password`='$password'
  6. ");
  7. if ($query === false) {
  8.   echo mysql_error();
  9. } else {
  10.     $row = mysql_num_rows($query); // считаем количество рядов результата запроса


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
opadai
Отправлено: 18 Января, 2013 - 13:59:25
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




DelphinPRO лан спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB