За последние 24 часа нас посетили 17507 программистов и 1716 роботов. Сейчас ищут 1789 программистов ...

Разрешать ли спец.символы в имени акканутов?

Тема в разделе "PHP для новичков", создана пользователем Walk, 14 мар 2018.

  1. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    a-zA-Z0-9_ и всё.
    Ок, + а-яА-Я если прям невмоготу.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    ёЁ + идентификатор юникод /u
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    аргументируй
     
  4. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    @igordata
    Не нужно наворачивать функционал оригинальный_логин + представление, а в случае если исходить только из оригинального, то не нужен функционал обработки.
    Не нужны vipяшки с кульными логинами, попахивает.
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Видал я такое. Заходишь в игру а там 1000 групп и все Russia. И в них все игроки Abyss. Везде свои минусы.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Точнее крутотень со шлюхами + три топора где поднять бабла
     
  7. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Я иду в комплекте с Walk, и то когда мне не лень :)
    Тем более, что мой вариант проверки на zalgo не работает, какие уж тут мозги :D

    У меня не завелось. Вот так завелось: transliterator_transliterate('Any-Latin; Latin-ASCII', $account);
    Но не совсем поняла назначения функции... 't́e̸͢s̶̢t͟͜♣ a l e x ♣аваа' преобразует в 'test♣ a l e x ♣avaa'. Если добавить Any-Cyrillic, то весь текст транслитирируется в русский. Если я такую строку впоследствии буду использовать для сортировки, то русские ники потеряют правильный порядок сортировки. Хотя очистка от zalgo - это хорошо, хотя бы для сортировок.
    Вот что я умудрилась написать для очистки от zalgo:
    PHP:
    1. $symb_array = str_split($account);
    2. $symb_array = array_map(function($symb){return bin2hex($symb);}, $symb_array);
    3. $len = count($symb_array);
    4. for ($i = 0; $i < $len; $i++){
    5.     if ($symb_array[$i] === 'cc' || $symb_array[$i] === 'cd' || $symb_array[$i] === 'd2'){
    6.         unset($symb_array[$i]);
    7.         if (isset ($symb_array[++$i])){
    8.             unset($symb_array[$i]);
    9.         }
    10.     }
    11. }
    12. $account = hex2bin(implode($symb_array));
    Но слишком много работы для многоразовой работы. Это разве что в бд при регистрации закинуть очищенный ник для сортировки.
    Или рубить такое безобразие на корню. Просто юникод смайлики - фиг бы с ними. Для проверки на zalgo такой вариант, вроде работает, в отличии от предыдущего:
    PHP:
    1. $symb_array = str_split($account);
    2. $symb_array = array_map(function($symb){return bin2hex($symb);}, $symb_array);
    3. if (in_array('cc', $symb_array) || in_array('cd', $symb_array) || in_array('d2', $symb_array)){...}
     
    Walk нравится это.
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    семья прогеров
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    а кот тоже?
    --- Добавлено ---
    кот в коде
     
  10. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Кошка пытается правильно запрограммировать человеков, чтобы те и кормили и гладили когда надо и играли почаще.
     
    Walk нравится это.
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так это она и есть кот

    [​IMG]
     
    MouseZver нравится это.
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    у тебя симпатий больше чем сообщений
     
  13. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Секрет в том, чтобы отвечать только в темах мужа, желательно по теме и с полезной информацией. Это дает почти гарантированный лайк от мужа.
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    "Больше не нравится"
    --- Добавлено ---
    :D
     
  15. glorsh66

    glorsh66 Активный пользователь

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    Поясните глупенькому -
    как эта штука ловит вот эти злобыне символы?
    Код (Text):
    1. if($symb_array[$i]==='cc'||$symb_array[$i]==='cd'||$symb_array[$i]==='d2')
    Т.е. я вот эта японская хрень обязательно начинается с префикса 'cc','cd','d2'?

    И правильно понимаю что это два байта - по этому и -
    Код (Text):
    1.        if (isset ($symb_array[++$i])){
    2.             unset($symb_array[$i]);
    3.         }
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    @glorsh66 это не байты, а hex код
     
  17. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Нет :) Там bin2hex спрятан. Вы скрипт запустите, вардампы расставьте и прощупайте, как оно работает. Внутренний компилятор, конечно, развивать нужно, но это не сравнится с собственным опытом препарирования чужих скриптов. Понимаю, что лень, зато тайное может стать явным, да и вдруг багу найдете.
    Для большего понимания немного теории - залго содержит знаки, которые можно ставить над символом, под и на символ. Но недостаточно просто поставить букву и эту надбуквенную черточку (или запятую или еще какую хрень), нужно поставить букву, которую нужно засрать, потом символ-указатель, куда пихать следующую хрень (верх низ или прямо на), а потом уже саму хрень. Эти штуки можно стакать, например: буква, вверх, хрень, вверх, другая хрень, вверх, хрень, вниз, третья хрень. Итого оно идет парами. Каждое занимает один символ, но символы вверх, вниз и на нельзя просто добавить в сравнение - это спецсимволы. Поэтому я, в поисках как бы все это разобрать на читабельные составляющие, решила преобразовать в хекс, потом глазками нашла коды паразитов и пихнула их в условия.

    Это конструкция одновременно удаляет следующий символ за спецсимволом символ (надо ведь пару удалить, а не один) и увеличивает i на единицу. Такие конструкции обычно новичкам непонятны и именно поэтому я это использовала здесь (мухаха). Тут нужно понимать, чем i++ отличается от ++i. И что выйдет вот из этого:
    Код (Text):
    1. $i = 3;
    2. $a = 8 + $i++;
    3. $b = 3 + ++i;
    4. var_dump($a);
    5. var_dump($b);
    6. var_dump($i);
    ps. На самом деле я использовала ++i не ради издевательства, а потому что все таки проще встретить это в небольшом коде и рядом с человеком, который может хоть как-то что-то прояснить, чем в большом коде, автор которого давно уехал в Австралию и удалил все контакты с прошлыми работодателями.
     
    glorsh66 нравится это.
  18. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @Polli Ничего себе люди сообщения длинные пишут. Еще и второй раз подряд.o_O
     
  19. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    @nospiou , вроде форум по php, а сплошные флудеры. Ну что за безобразие :)
     
  20. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Вот не лень людям себе проблемы выдумывать-то...
    Загоны ппц. А потом оказывается, что "Fell-x27" не валидный ник. Надо Fell_x27. А где-то Fellx27. А где-то минимальная длина логина больше, и надо Fellx277 и так далее. ДОКОЛЕ? Накой такая тирания? Ну хочет себе человек ник дурацкий, ну дай ему, что хочет. Ну сделал он себе ник с потекшими символами, ну и хрен с ним. Будут жалобы от участников - прими меры, не будут - значит хорошо все.
     
  21. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Ну я очистку для разминки перед рабочим днем сваяла и для красивой сортировки по никам. Хотя у меня есть пол вагона сомнений по поводу своего кода, но решать их пока лень.
    На счет разрешать все в нике, мне вот стало интересно, если в конце ника оставить этот спецсимвол, то следующий символ не испортится? Например <span>my_nick<?=hex2bin('cc')?></span> отобразится как надо? Есть ли символы, которые будучи выведены на экран, способны так или иначе сломать нижеследующую html разметку и текст?
     
  22. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Я бы еще добавил. Ну хочет человек изменить ник ну дайте ему такую возможность. Ну не будте вы какими то модерами с форума пихапи)
     
  23. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Ну хочет человек сайт взломать - ну дайте ему такую возможность. А когда уже будут жалобы на то, что все упало - тогда и будем меры принимать :D
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    +1
     
  25. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    +2 И где их столько набралось:)