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
Форумы портала PHP.SU :: Версия для печати :: Где ошибка?
Форумы портала PHP.SU » » Вопросы новичков » Где ошибка?

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

1. opadai - 18 Января, 2013 - 12:31:13 - перейти к сообщению
выдает ошибку
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. ?>
2. spsu - 18 Января, 2013 - 12:35:24 - перейти к сообщению
opadai, запрос некорректно выполняеться значит.
См. лог ошибок mysql...
Или 23 строку перепишите так, $query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'") or die(mysql_error());
3. opadai - 18 Января, 2013 - 12:39:01 - перейти к сообщению
spsuа блин тупанул забыл инклуде сделать
4. spsu - 18 Января, 2013 - 12:41:01 - перейти к сообщению
[quote=opadai][/quote]
Надо указать какую БД юзать функц.
PHP:
скопировать код в буфер обмена
  1. mysql_select_db(Имя БД, Идентификатор соеденения);
5. DelphinPRO - 18 Января, 2013 - 13:02:37 - перейти к сообщению
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); // считаем количество рядов результата запроса
6. opadai - 18 Января, 2013 - 13:59:25 - перейти к сообщению
DelphinPRO лан спасибо

 

Powered by ExBB FM 1.0 RC1