sql,php - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > PHP

PHP Форум как для начинающих программистов на PHP так и для профессионалов этого дела. Если нужно создать скрипт, функцию и т.д, но не знаете как, спросите у нас и мы вам подскажем. Здесь вы найдете примеры скриптов которые вы сможете использовать на сайтах своих серверов (онлайн, регистрация, семь печатей, топ игроков). Так же много книг и статей.

Ответ
Опции темы
Непрочитано 27.10.2011, 20:42   #1
Пользователь

Автор темы (Топик Стартер) sql,php

У меня проблема с SQL Server. Моя задача это реализовать простой SQL Serverbased usersystem с PHP. Базы данных также используется в MMORPG, так что я не могу менять структуру базы данных или хэширования алгоритмов. Реальная причина моей проблемы в том, что пароль хешируется по следующиму алгоритму
PHP код:
HashBytes('MD5'REVERSE(UPPER(@ID))+@PW
Я создал тестового пользователя назвал test123 и PW hallo123 что соответствует хэш пароля

до этого момента все должно быть ясно. Ну а когда я пытаюсь извлечь данные в запросе я получаю никаких результатов. Я использовал этот запрос:
PHP код:
mssql_query("SELECT * FROM Member WHERE ID = 'test123' AND PW = HashBytes('MD5', REVERSE(UPPER('test123')) + 'hallo123')"); 
Где ID= логин, PW= пароль
Не возвращает результат(
Salomey вне форума Ответить с цитированием
Непрочитано 27.10.2011, 22:53   #2
Изгнанные

По умолчанию Re: sql,php

Все намного проще. Вы не правельно написали запрос. Не по правилам.

Вот так вроде должно работать:
mssql_query("SELECT * FROM Member WHERE ID = 'test123' AND PW = '".HashBytes('MD5', REVERSE(UPPER(@ID))+@PW) ."'");

Последний раз редактировалось Gambit_J; 27.10.2011 в 23:09. Причина: Добавлено сообщение
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 28.10.2011, 01:33   #3
Аватар для Dizband
ЛК под любые игры

По умолчанию Re: sql,php

Цитата:
Сообщение от php_mysql Посмотреть сообщение
Вот так вроде должно работать:
HashBytes это функция mssql, как и reverse и upper.

Сгенерируйте пароль отдельно и сравните его с тем, что в базе. Быть может ID - это и есть ID аккаунта, а не его логин? Я не видел всей системы, посему не знаю.
Dizband вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 28.10.2011, 12:50   #4
Изгнанные

По умолчанию Re: sql,php

Цитата:
Сообщение от n0nam3 Посмотреть сообщение
HashBytes это функция mssql, как и reverse и upper.
Я на функцию необращал внимания, просто сказал как правельнее присвоить равенству в запросе. =' ".функция()." ' (без пробелов)
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Непрочитано 28.10.2011, 12:53   #5
Пользователь

Автор темы (Топик Стартер) Re: sql,php

Да, это функция mssql, если у кого есть минутка помочь мне, прошу сюда skype:tequilaa402

Добавлено через 1 минуту
Юзер в форме вводит логин и пароль, мне надо написать запрос чтобы проверял пароль в обработчике, уже много часов думаю как их сравнить))

Последний раз редактировалось Salomey; 28.10.2011 в 12:54. Причина: Добавлено сообщение
Salomey вне форума Ответить с цитированием
Непрочитано 28.10.2011, 13:31   #6
Аватар для Dizband
ЛК под любые игры

По умолчанию Re: sql,php

Цитата:
Сообщение от php_mysql Посмотреть сообщение
Я на функцию необращал внимания, просто сказал как правельнее присвоить равенству в запросе. =' ".функция()." ' (без пробелов)
Это если она является функцией php, а не базы данных.
Dizband вне форума Ответить с цитированием
Непрочитано 28.10.2011, 13:48   #7
Пользователь

По умолчанию Re: sql,php

Цитата:
Сообщение от Salomey Посмотреть сообщение
Да, это функция mssql, если у кого есть минутка помочь мне, прошу сюда skype:tequilaa402

Добавлено через 1 минуту
Юзер в форме вводит логин и пароль, мне надо написать запрос чтобы проверял пароль в обработчике, уже много часов думаю как их сравнить))
Вам на что проверка нужна? Ввел юзер пароль или нет?=)

if(!password(если НЕ NULL то добавляем в БД)){

}
else(а здесь если NULL){}

P.S. либо я не так понял.
niko42 вне форума Ответить с цитированием
Непрочитано 28.10.2011, 14:00   #8
Аватар для Dizband
ЛК под любые игры

По умолчанию Re: sql,php

Цитата:
Сообщение от Salomey Посмотреть сообщение
Да, это функция mssql, если у кого есть минутка помочь мне, прошу сюда skype:tequilaa402

Добавлено через 1 минуту
Юзер в форме вводит логин и пароль, мне надо написать запрос чтобы проверял пароль в обработчике, уже много часов думаю как их сравнить))
Весь код выложите.

Добавлено через 32 секунды
Цитата:
Сообщение от niko42 Посмотреть сообщение
P.S. либо я не так понял.
Не так поняли, и пример неверный.

Последний раз редактировалось Dizband; 28.10.2011 в 14:01. Причина: Добавлено сообщение
Dizband вне форума Ответить с цитированием
Непрочитано 28.10.2011, 14:01   #9
Пользователь

Автор темы (Топик Стартер) Re: sql,php

Вы не так поняли)) На запрос регистрации я использую хранимую процедуру, в процедуре есть 2 переменные @ID и @PW, пароль генерируется по алгоритму который я отписал выше, ну вот когда юзер вводит логин и пароль для входа в лк (личный кабинет) обработчик должен сверить пароль который он ввёл в форму, с тем что в базе, ну чтобы я не писал, получается фигня))
Salomey вне форума Ответить с цитированием
Непрочитано 28.10.2011, 14:03   #10
Аватар для Dizband
ЛК под любые игры

По умолчанию Re: sql,php

Цитата:
Сообщение от Salomey Посмотреть сообщение
Вы не так поняли)) На запрос регистрации я использую хранимую процедуру, в процедуре есть 2 переменные @ID и @PW, пароль генерируется по алгоритму который я отписал выше, ну вот когда юзер вводит логин и пароль для входа в лк (личный кабинет) обработчик должен сверить пароль который он ввёл в форму, с тем что в базе, ну чтобы я не писал, получается фигня))
Тогда и код процедуры надо. Может у вас поле пароля varbinary, а вы пытаетесь в строку его кастануть и сравнить, что неверно. Тут не телепаты.
Dizband вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 20:31. Часовой пояс GMT +3.

Вверх