Автор Тема: Проверка ников  (Прочитано 7262 раз)

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

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« : 22 Июля 2002, 20:31:09 »
Вобщем у меня есть табтица ников в БД при регистрации.. воот.. и вопрос как избежать подмены ников допустим НИК и HИК.. Зрительно они одинаковы но БД их воспринимает как разные.. К!=K потому что одна из них русская а другая английская...
Мне тормоз послужил толчком...

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #1 : 22 Июля 2002, 20:43:06 »
самый верный и дибильный способ ограничить ввод (т.е. только латиница)
а иначе это мало реально, имхо... больно много писанины, а выхлоп близок к нулю..

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #2 : 22 Июля 2002, 20:53:59 »
А может чё-нить  готовое есть?
Мне тормоз послужил толчком...

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Проверка ников
« Ответ #3 : 22 Июля 2002, 21:48:58 »
Neter
Ну напиши сам функцию, что-типа

function foo($nick) {
      return 
strtr($nick"aAcCkKMoOTxXBeEpP""аАсСкКМоОТхХВеЕрР");
}

а потом по оригинальному значению и возвращенному функцией ищи в базе.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #4 : 22 Июля 2002, 22:01:39 »
Кажись в димином чате была такая функция. Покопайся в коде, там даже комментарии есть :)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #5 : 22 Июля 2002, 22:54:02 »
Макс, Если честно я не знаю Диму.. И тем более не знаю где лежит его чат :(
Мне тормоз послужил толчком...

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #6 : 22 Июля 2002, 22:59:12 »
GotZfild, я чего-то не пойму.. Допустим чувак вводит Neter, то есть первая буква (e) английская а вторая русская.. это сработает?
Мне тормоз послужил толчком...

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Проверка ников
« Ответ #7 : 22 Июля 2002, 23:47:26 »
Neter
Нет конечно.
У русской и английской е разные ASCII коды.
Так что совпадения не будет.
AS IS...

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #8 : 23 Июля 2002, 00:01:14 »
Хмм... тогда как? Запретить нахрен русские ники?
Мне тормоз послужил толчком...

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #9 : 23 Июля 2002, 00:50:24 »
Так, народ, зацените фишку:


$str 
"HiK";
$str2 "НiK";

function 
foo($str){
$str str_replace("а""a"$str);
$str str_replace("А""A"$str);
$str str_replace("В""B"$str);
$str str_replace("Е""E"$str);
$str str_replace("е""e"$str);
$str str_replace("У""Y"$str);
$str str_replace("у""y"$str);
$str str_replace("Р""P"$str);
$str str_replace("р""p"$str);
$str str_replace("О""O"$str);
$str str_replace("о""o"$str);
$str str_replace("С""C"$str);
$str str_replace("с""c"$str);
$str str_replace("Т""T"$str);
$str str_replace("М""M"$str);
$str str_replace("К""K"$str);
$str str_replace("Н""H"$str);
return 
$str;
}

if (
foo($str) == foo($str2)){
echo 
"Ники одинаковы!";
}

Незнаю правильно ли я сообразил...
И незнаю как это будет в плане быстродействия... Но эта операция в принцепе будет выполнятся только один раз при регистрации...
« Последнее редактирование: 23 Июля 2002, 11:48:20 от Neter »
Мне тормоз послужил толчком...

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Проверка ников
« Ответ #10 : 23 Июля 2002, 01:28:21 »
Neter
Да зпарети ты их в крайнем случае.
Зачем они?
AS IS...

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #11 : 23 Июля 2002, 01:54:20 »

if (preg_match("/[а-я]+/i",$nik)) {
echo 
"ты блин еще на арабском напиши";
}


но лучше яваскриптом проверить до сабмита формы...

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #12 : 23 Июля 2002, 11:12:10 »
Цитировать
Так, народ, зацените фишку:
PHP:
.....

Ну ты блин гонишь. Тебе же GotZfild тоже самое давно сказал, только бестрее использовать strtr, а не str_replace.
[OFF]Извини за грубость[/OFF]

А Димин чат это насколько я знаю на http://www.php.spb.ru
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Проверка ников
« Ответ #13 : 23 Июля 2002, 12:01:31 »
Всё, я понял.. GotZfild с меня бутылка пива.. Хотя.. Нет.. ящик, сенкс очень помог :)
Мне тормоз послужил толчком...

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Проверка ников
« Ответ #14 : 23 Июля 2002, 12:11:35 »
Neter
Да плюнь ты на это. И в Димином чате, насколько я помню, этого не было. Там было перевод транслита на русский.
Если уж очень надо, то вот функция, которая возвращает массив с различными вариациями ника:

function foo($nick) {
      
$eng "aAcCkKMoOTxXBeEpP";
      
$rus "аАсСкКМоОТхХВеЕрР";
      
$nicks[0] = $nick;
      for (
$i 0$i strlen($eng); $i++) {
            
$new_nick str_replace($eng[$i], $rus[$i], $nick);
            if (
$new_nick != $nick) {
                  
$nicks[] = $new_nick;
                  
$nick $new_nick;
            }
      }
      return 
$nicks;
}
После трех дней без программирования жизнь становится бессмысленной.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28