Запретить разный регистр при регистрации аккаунта | Как исправить ошибку?

Автор AlexDIXI, 2013 Авг. 10, 04:19

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] исправление ошибкиошибка при регистрации аккаунтаразный регистр

AlexDIXI

Привет, Всем. Пишу свою регистрацию. И в таблице стоит Case Sensitive, у MEMB_INFO. Но при проверке пишет что не найден логин admin. А он есть. Как Admin.

Поправьте меня пожалуйста, в запросе:
## Check Username
function checkUsername($login){
$sql = mssql_query("SELECT count(memb___id) FROM [MuOnline].[dbo].[MEMB_INFO] WHERE memb___id = '".$login."'") or die("ERROR SELECT LOGIN");
if(mssql_result($sql, 0, 0)){
return false;
}
return true;
}

Что-то добавить надо, в запрос, чтобы плевать было на регистр! При входе, была проблема, я ее решил, с помощью Case Sensitive, в клиенте, когда входили, с разными регистрами на разные аккаунты. А вот с пхп, кодом, проблема при проверки. Спасибо за помощь!

epmak

1. кодировку меняй на CI или галками мучайся
2. strtolow/strtoupper или lower/upper

ты ж разработчик, неужели не сталкивался?

а, еще
3. убрать регистрацию с убквами или сделать автогенерацию логина из цифр

AlexDIXI

#2
Цитата: epmak от 2013 Авг. 10, 06:11  1. кодировку меняй на CI или галками мучайся
2. strtolow/strtoupper или lower/upper

ты ж разработчик, неужели не сталкивался?

а, еще
3. убрать регистрацию с убквами или сделать автогенерацию логина из цифр
Спасибо.
Вы меня не поняли. Если человек зарегистрировался "4uVak" то пусть остается "4uVak" всегда.. Он потом входит только с таким именем, именно в большом регистре буква V.  Если я спущу ник, в нижний регистр, то так могут обидится игроки.. На худой конец спускать в нижний регистр буду..

Что даст кодировка CI, не понимаю? Блин в mysql с этим гораздо проще все...

epmak

#3
Case insensitive
не чувствительной к регистру, то есть VoVa и VOVA и vova будут одинаковыми. я не знаю кто изначально придумал, но по-чему-то во многих базах специально стоит CS и это и вызывает подобную проблему

AlexDIXI

#4
Цитата: epmak от 2013 Авг. 10, 10:03  Case insensitive
не чувствительной к регистру, то есть VoVa и VOVA и vova будут одинаковыми. я не знаю кто изначально придумал, но по-чему-то во многих базах специально стоит CS и это и вызывает подобную проблему
- Но на деле, мне выдает что ник не существует и мол, можете регать такой ник admin. А Ник Admin существует, но с заглавной первой буквой.

- Но самое что хитрое, в майне все ок, при коннекте  с этим. Я поправил, добавив  Case insensitive к ячейкам в разных таблицах, на память сейчас не вспомню, ну все где есть логин.  Тобишь, если пробовать войти Admin то дает - если admin, то аккаунта не существует, хотя до этого, пускал как на новый без персонажей, дав создавать новый.
Вывод. Что-то в запросе корректно у main.exe, не же ли у меня. Ищи такой логин не имея значение регистр.


Ребут, sql, машине и всему что можно я делал. Но PHP скрипт и Query analizy не дают результатов, по игнорированию регистра. Он не находит, хотя должен.

epmak

я еще раз повторяю, вся проблема в CS и CI выше написано как с ней бороться. если ты хоть немного представляешь что такое collation  должен разобраться сам, там не тяжело.

AlexDIXI

#6
Цитата: epmak от 2013 Авг. 10, 13:16  я еще раз повторяю, вся проблема в CS и CI выше написано как с ней бороться. если ты хоть немного представляешь что такое collation  должен разобраться сам, там не тяжело.

https://alexwm.com/photo/arh/2013-08-10/653...167d34741cb.jpg
https://alexwm.com/photo/arh/2013-08-10/ea5...5703b1ef55c.jpg
https://alexwm.com/photo/arh/2013-08-10/007...704e9c9f17c.jpg

Так доходчиво?

epmak

так, давай по другому
CS = case sensitive
CI  = case insensitive
теперь внимание, как ты думаешь, что происходит когда ты ставишь галочку в базе на CS?
и, это, ставь 2008, он лучше ,мощнее и главное, безопаснее.

AlexDIXI

Да я наглотался багов с ней sql 2000 =(  А в 2008 не понял как таблицы корректировать. Типа вывести все поля. А качать давали с офицала, я так понимаю что это триал. Если можешь в личьку кинь ссылку на ру трейкер или еще где, если не затруднит, на 2008 x32. Спасибо.

AlexDIXI

#9
Спойлер
---------------------------------------
[свернуть]

Белый

Цитата: AlexDIXI от 2013 Авг. 10, 14:28  Да я наглотался багов с ней sql 2000 =(  А в 2008 не понял как таблицы корректировать. Типа вывести все поля. А качать давали с офицала, я так понимаю что это триал. Если можешь в личьку кинь ссылку на ру трейкер или еще где, если не затруднит, на 2008 x32. Спасибо.
https://mega.co.nz/#!ac0nwRBD!BzOv53QqJl2B3Q9lLN-1ZjT1GElXwebTkAFaYGbXbUI

/index.php?topic=17528.0

AlexDIXI

Так, тогда я получается наоборот сделал, чувствительность к регистру. Как-то в запросе надо обыграть, чтобы не было чувствительности, при поиске такого логина или email.

epmak

по факту, тебе не нужна чувствительность больше чем вообще, так что смело можешь её вырубать.

AlexDIXI

Цитата: epmak от 2013 Авг. 10, 14:50  по факту, тебе не нужна чувствительность больше чем вообще, так что смело можешь её вырубать.
Нужна. У меня без этой опции входят в игру  с другим регистром как в новый акк без персонажей и ему предлагают создать нового..

epmak

пффф..
если у тебя база не различает регистр, то войти в игру с дублированным аком не выйдет, если ты конечно не догадался после изменения регистра оставить акки типа Admin и admin. сносишь их или переименовываешь, ставишь CI и все, ты в танке.

но вообще думай сам, хочешь геморроя - беда твоя. я устал повторять через пост 1 и то же.

user_MU

Может для начала стоит определиться что важнее - безопасность или обида юзеров на изменение логина в нижний регистр?
На мой взгляд первое в приоритете.

AlexDIXI

#16
Цитироватьесли у тебя база не различает регистр, то войти в игру с дублированным аком не выйдет
А вот у меня выходит, что конкретно происходит, я описал выше. После чего мне сказали ставь Case Sensitive и оно спасло.

Походу надо в запросе sql добавить ключ чтобы регистр не учитывало, иду искать думал тут такое знают и помогут.

Если кто может помочь, отпишите.

А чтобы поставить case insensitive в sql2000 то галочку убираем просто с  case sensitive..

f1x

Не очень понял, но может тебе это поможет.
http://forum.x-mu.net/ipb.html?s=&showtopic=17641&view=findpost&p=129083

AlexDIXI

Цитата: f1x от 2013 Авг. 10, 22:11  Не очень понял, но может тебе это поможет.
https://x-mu.net/ipb.html?s=&showtopic=17641&view=findpost&p=129083
Боже как я благодарен вообще, ты себе не представляешь. Очень приятно, спасибо что поддержали ребята.

Кто будет искать:
ЦитироватьSELECT count(memb___id) FROM [MuOnline].[dbo].[MEMB_INFO] WHERE memb___id = '{Логин с любым регистром}' COLLATE Chinese_PRC_CI_AS

А теперь, это даст, КраСивЫй логин в игре, при этом, при попытке авторизоваться, с ошибившись в регистре буквой, выведет что, логин инвалид.

epmak

Спойлер
угу...
действительно проще заходить на 5 этаж через окно, дверей нам не надо.
можно узнать, ты пишешь в основном  на чем?
[свернуть]

Похожие темы (5)