Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±

    Вопрос по проверке символов в пароле

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

  2. #2
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    PHP код:
            new types[3];
    for(new 
    i,strlen(inputtext); di++){
        switch(
    inputtext[i]){
            case 
    'a'..'z','A'..'Z','а'..'я','А'..'Я','ё','Ё':  types[0]++;
            case 
    '0'..'9':   types[1]++;
            default: 
    types[2];
        }
    }
    if(
    types[0] && !types[1] && !types[2]){
        
    //Действие если в тексте только буквы
    }
    if(!
    types[0] && types[1] && !types[2]){
        
    //Действие если в тексте только цыфры
    }
    if(!
    types[0] && !types[1] && types[2]){
        
    //Действие если в тексте только символы

    думаю логика понятна
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  3. Пользователь сказал cпасибо:
    Сергей (16.01.2019)
  4. #3
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от Alpano Посмотреть сообщение
    PHP код:
            new types[3];
    for(new 
    i,strlen(inputtext); di++){
        switch(
    inputtext[i]){
            case 
    'a'..'z','A'..'Z','а'..'я','А'..'Я','ё','Ё':  types[0]++;
            case 
    '0'..'9':   types[1]++;
            default: 
    types[2];
        }
    }
    if(
    types[0] && !types[1] && !types[2]){
        
    //Действие если в тексте только буквы
    }
    if(!
    types[0] && types[1] && !types[2]){
        
    //Действие если в тексте только цыфры
    }
    if(!
    types[0] && !types[1] && types[2]){
        
    //Действие если в тексте только символы

    думаю логика понятна
    PHP код:
    static
        
    types[2],
        
    i,
        
    c;

    types[0] = types[1] = 0;
    = -1;

    while((
    inputtext[++i]) != '\0')
    {
        switch (
    c)
        {
            case 
    'a'..'z','A'..'Z','а'..'я','А'..'Я','ё','Ё'types[0]++; 
            case 
    '0'..'9'types[1]++;
        }
    }

    if (!
    types[0] && types[1])
        
    //только цифры
    else if (types[0] && types[1])
        
    //цифры и буквы 

  5. Пользователь сказал cпасибо:
    Сергей (16.01.2019)
  6. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Не совсем понял зачем насиловать сегмент данных. Да и подсчёт символов там ни к чему, ибо задачи такой, судя по вопросу, не стоит.
    Я бы сделал как-то так:
    1. new i = -1,
    2. c,
    3. bool:isfind = false;
    4.  
    5. while((c = inputtext[++i]) != '\0')
    6. {
    7. switch(c)
    8. {
    9. case '0'..'9':
    10. {
    11. continue;
    12. }
    13. default:
    14. {
    15. isfind = true;
    16. break;
    17. }
    18. }
    19. }
    20.  
    21. if(isfind == false)
    22. {
    23. //только цифры
    24. }
    25. else
    26. {
    27. //цифры и буквы
    28. }

    В данном "else" сработает даже если поставить хоть один символ, отличный от цифры (ограничивать пароль только буквами и цифрами, отбрасывая символы - не очень разумная затея. Если боишься SQL-инъекций, достаточно запретить использовать одинарную кавычку и обратный слэш)
    Последний раз редактировалось DeimoS; 16.01.2019 в 10:08.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    Сергей (16.01.2019)
  8. #5
    Аватар для Сергей
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Сообщений
    161
    Репутация:
    3 ±
    Всем спасибо, можно закрывать.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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