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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Вот участок кода.
kusha
Отправлено: 08 Января, 2010 - 12:35:23
Post Id


Новичок


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


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




Смысл - проверка пользователя в базе данных.
$login - переданный логин
$password - переданный пароль
таблица устроенна так:

uid | login | pass
-------------------------
1 | example | 12345

mysql_select_db($db);

$res=mysql_query("SELECT uid FROM users WHERE login=".$login." AND pass=".$password);

if(mysql_num_rows($res)>0)
{
echo "Вы совершили вход. Можете приступать к работе с сервисом.<p>";
$user = mysql_result($res, 0, 0);
//Это кук ставиться
setcookie("uid",$user,0x6FFFFFFF);
}
else
{
echo "Неверная связка логин - пароль. Попробуйте снова.<p>";
}

Вот ошибка:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\login.php on line 27

На дыру для MySql-Inj глаза закрываю, с этим уже стоит разбираться потом.
Помогите пожалуйста. ::sad24.gif::

(Отредактировано автором: 08 Января, 2010 - 12:43:07)

 
 Top
Ammy
Отправлено: 08 Января, 2010 - 12:41:40
Post Id



Частый гость


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


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




Если:

Цитата:

таблица устроенна так:

uid | login | password


То почему:
Цитата:

$res=mysql_query("SELECT uid FROM users WHERE login=".$login." AND pass=".$password);

(Отредактировано автором: 08 Января, 2010 - 12:42:02)

 
 Top
kusha
Отправлено: 08 Января, 2010 - 12:43:54
Post Id


Новичок


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


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




Просто заминка, описался, в таблице "pass"
 
 Top
Ammy
Отправлено: 08 Января, 2010 - 12:53:07
Post Id



Частый гость


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


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




Это может означать, что MySQL не смог обработать ваш запрос.

PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("SELECT uid FROM users WHERE login=".$login." AND pass=".$password) or die(mysql_error());


Замените строку на эту.
 
 Top
kusha
Отправлено: 08 Января, 2010 - 12:59:28
Post Id


Новичок


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


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




You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

хм... запрос как-то не так составлен как я понимаю?
попробовал добавить кавычку...

$res = mysql_query("SELECT uid FROM users WHERE login=".$login." AND pass=".$password."\"" ) or die(mysql_error());

ничего не дало.
 
 Top
Ammy
Отправлено: 08 Января, 2010 - 13:01:44
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("SELECT uid FROM users WHERE login=$login AND pass=$password") or die(mysql_error());
 
 Top
kusha
Отправлено: 08 Января, 2010 - 13:04:35
Post Id


Новичок


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


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




тоже самое.. ::sad24.gif::

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
(Добавление)
этот ненавистный селект с двумя условиями. мож заменить на ченить другое? как лучше будет? ::dry.gif::
 
 Top
Мелкий Супермодератор
Отправлено: 08 Января, 2010 - 13:20:44
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("SELECT `uid` FROM `users` WHERE `login`='".$login."' AND `pass`='".$password."'") or die(mysql_error());

текстовые данные стоит в кавычки брать, а имена полей - в обратные кавычки


-----
PostgreSQL DBA
 
 Top
kusha
Отправлено: 08 Января, 2010 - 13:44:31
Post Id


Новичок


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


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




Отлично, этот участочек заработал. Спасибо. Но возникла другая проблема. Не понял

mysql_num_rows($res) равен нулю. даже если в базе есть пользователь. и каким способом считать то, что передано в $res? *не вините, я полный новичок* Огорчение

$user = mysql_result($res, 0, 0); пишет

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in Z:\home\test1.ru\www\login.php on line 36
 
 Top
Мелкий Супермодератор
Отправлено: 08 Января, 2010 - 13:59:36
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




kusha пишет:
mysql_num_rows($res) равен нулю. даже если в базе есть пользователь.

Значит у пользователя другой пароль или имя, раз с имеющимися логином и паролем ничего не нашли.

1 строка запроса:


kusha пишет:
$login - переданный логин
$password - переданный пароль

А вы их точно получаете? echo $login,$password; выводит их?

(Отредактировано автором: 08 Января, 2010 - 14:02:13)



-----
PostgreSQL DBA
 
 Top
kusha
Отправлено: 08 Января, 2010 - 14:06:55
Post Id


Новичок


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


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




Не мог же я опечататься 6 раз. Не понял
А дело мб в том, что типы разные? у меня в таблице поля pass и login типа varchar(22).


Получаю точно, для проверки вывожу, все верно. Вывожу нам_ровс и он нулю равен.
(Добавление)
ОХ НУ Я ДУРАК!!!! Радость
Я нашел ошибку. Спасибо всем.
Псоледняя ошибка была в том, что паасворд накладывался из-за коннекта к БД. Огромное спасибо, что помогли разобраться Здорово Хи Привет!

(Отредактировано автором: 08 Января, 2010 - 14:10:21)

 
 Top
DimKA
Отправлено: 10 Января, 2010 - 21:32:42
Post Id


Новичок


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


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




помогите пожалуйста и мне)

PHP:
скопировать код в буфер обмена
  1.   <?PHP
  2.         if(!$db = mysql_connect("localhost","envos","1111"))
  3.         {
  4.             echo"Не могу подключится к серверу базы данных";
  5.             exit;
  6.         }
  7.         mysql_select_db("guestbook",$db);
  8.         $r = mysql_query("SELECT * from USERS");
  9.         echo"В таблице  ".mysql_num_rows($r)." записей";
  10.  
  11.  ?>


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/dima/Sites/dle/www/index.p hp on line 20
В таблице записей

помогите пожалуйста Однако
 
 Top
Ammy
Отправлено: 10 Января, 2010 - 21:46:43
Post Id



Частый гость


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


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





Это поможет определить истинную ошибку.
 
 Top
DimKA
Отправлено: 10 Января, 2010 - 22:06:55
Post Id


Новичок


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


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




Ammy,спасибо,ошибка Table 'guestbook.USERS' doesn't exist

ток вроде бы всё правельно,не могу понять в чем причина (
 
 Top
Ammy
Отправлено: 10 Января, 2010 - 22:12:06
Post Id



Частый гость


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


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




DimKA пишет:
ошибка Table 'guestbook.USERS' doesn't exist

Говорится, что таблицы, именуемой как USERS не существует. Вероятно, стоит поменять запрос на такой?

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB