Сообщений: 38 
	Тем: 1 
	Зарегистрирован: Oct 2011
	
 Репутация: 
 15
	 
 
	
	
		У меня проблема с SQL Server. Моя задача это реализовать простой SQL Serverbased usersystem с PHP. Базы данных также используется в MMORPG, так что я не могу менять структуру базы данных или хэширования алгоритмов. Реальная причина моей проблемы в том, что пароль хешируется по следующиму алгоритму 
PHP код: <?php  
HashBytes('MD5', REVERSE(UPPER(@ID))+@PW)  
 
Я создал тестового пользователя назвал test123 и PW hallo123 что соответствует хэш пароля
 
до этого момента все должно быть ясно. Ну а когда я пытаюсь извлечь данные в запросе я получаю никаких результатов. Я использовал этот запрос:
 PHP код: <?php  
mssql_query("SELECT * FROM Member WHERE ID = 'test123' AND PW = HashBytes('MD5', REVERSE(UPPER('test123')) + 'hallo123')");  
  Где ID= логин, PW= пароль 
Не возвращает результат(
	  
	
	
	
	
 
	
	
	
		
	Сообщений: 981 
	Тем: 77 
	Зарегистрирован: Oct 2011
	
	 
 
	
		
		
		10-27-2011, 10:53 PM 
(Сообщение последний раз редактировалось: 10-27-2011, 11:09 PM   Gambit_J.)
		
	 
	
		Все намного проще. Вы не правельно написали запрос. Не по правилам. 
 
Вот так вроде должно работать: 
mssql_query("SELECT * FROM Member WHERE ID = 'test123' AND PW = '".HashBytes('MD5', REVERSE(UPPER(@ID))+@PW) ."'");
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 734 
	Тем: 6 
	Зарегистрирован: Sep 2009
	
 Репутация: 
 4,302
	 
 
	
	
		php_mysql;145654 Написал:Вот так вроде должно работать: HashBytes это функция mssql, как и reverse и upper.
 
Сгенерируйте пароль отдельно и сравните его с тем, что в базе. Быть может ID - это и есть ID аккаунта, а не его логин? Я не видел всей системы, посему не знаю.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 981 
	Тем: 77 
	Зарегистрирован: Oct 2011
	
	 
 
	
	
		n0nam3 Написал:HashBytes это функция mssql, как и reverse и upper. Я на функцию необращал внимания, просто сказал как правельнее присвоить равенству в запросе. =' ".функция()." ' (без пробелов)   
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 38 
	Тем: 1 
	Зарегистрирован: Oct 2011
	
 Репутация: 
 15
	 
 
	
		
		
		10-28-2011, 12:53 PM 
(Сообщение последний раз редактировалось: 10-28-2011, 12:54 PM   Salomey.)
		
	 
	
		Да, это функция mssql, если у кого есть минутка помочь мне, прошу сюда skype:tequilaa402 
 
Добавлено через 1 минуту 
Юзер в форме вводит логин и пароль, мне надо написать запрос чтобы проверял пароль в обработчике, уже много часов думаю как их сравнить))
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 734 
	Тем: 6 
	Зарегистрирован: Sep 2009
	
 Репутация: 
 4,302
	 
 
	
	
		php_mysql;145720 Написал:Я на функцию необращал внимания, просто сказал как правельнее присвоить равенству в запросе. =' ".функция()." ' (без пробелов) Это если она является функцией php, а не базы данных.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 175 
	Тем: 42 
	Зарегистрирован: Nov 2010
	
 Репутация: 
 57
	 
 
	
	
		Salomey Написал:Да, это функция mssql, если у кого есть минутка помочь мне, прошу сюда skype:tequilaa402 
 
Добавлено через 1 минуту 
Юзер в форме вводит логин и пароль, мне надо написать запрос чтобы проверял пароль в обработчике, уже много часов думаю как их сравнить)) 
Вам на что проверка нужна? Ввел юзер пароль или нет?=)
 
if(!password(если НЕ NULL то добавляем в БД)){
 
} 
else(а здесь если NULL){}
 
P.S. либо я не так понял.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 734 
	Тем: 6 
	Зарегистрирован: Sep 2009
	
 Репутация: 
 4,302
	 
 
	
		
		
		10-28-2011, 02:00 PM 
(Сообщение последний раз редактировалось: 10-28-2011, 02:01 PM   Dizband.)
		
	 
	
		Salomey;145723 Написал:Да, это функция mssql, если у кого есть минутка помочь мне, прошу сюда skype:tequilaa402 
 
Добавлено через 1 минуту 
Юзер в форме вводит логин и пароль, мне надо написать запрос чтобы проверял пароль в обработчике, уже много часов думаю как их сравнить)) Весь код выложите.
 Добавлено через 32 секунды
niko42;145754 Написал:P.S. либо я не так понял. Не так поняли, и пример неверный.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 38 
	Тем: 1 
	Зарегистрирован: Oct 2011
	
 Репутация: 
 15
	 
 
	
	
		Вы не так поняли)) На запрос регистрации я использую хранимую процедуру, в процедуре есть 2 переменные @ID и @PW, пароль генерируется по алгоритму который я отписал выше, ну вот когда юзер вводит логин и пароль для входа в лк (личный кабинет) обработчик должен сверить пароль который он ввёл в форму, с тем что в базе, ну чтобы я не писал, получается фигня))
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 734 
	Тем: 6 
	Зарегистрирован: Sep 2009
	
 Репутация: 
 4,302
	 
 
	
	
		Salomey;145757 Написал:Вы не так поняли)) На запрос регистрации я использую хранимую процедуру, в процедуре есть 2 переменные @ID и @PW, пароль генерируется по алгоритму который я отписал выше, ну вот когда юзер вводит логин и пароль для входа в лк (личный кабинет) обработчик должен сверить пароль который он ввёл в форму, с тем что в базе, ну чтобы я не писал, получается фигня)) Тогда и код процедуры надо. Может у вас поле пароля varbinary, а вы пытаетесь в строку его кастануть и сравнить, что неверно. Тут не телепаты.
	  
	
	
	
	
 
 
	
 |