kmilhailin
Новичок
Здравствуйте! Пишу мод с нуля и возникла проблема с регулярными значениями, а именно с проверкой на правильность пароля при регистрации.
В чём проблема... Я написал код который будет предоставлен ниже, для проверки символов пароля a-z, A-Z, 0-9 данные символы можно использовать в пароле. В игре вожу пароль с латиницей (пробывал и чисто цифры и цифры +латиница), но выдаёт, что не правильно ввёл пароль (а именно нарушение регистра).
Строки где указан какой должен быть регистр:
Код регистрации (ещё не доделан, строки, которые указывают регистр отмечены красным):
В чём проблема... Я написал код который будет предоставлен ниже, для проверки символов пароля a-z, A-Z, 0-9 данные символы можно использовать в пароле. В игре вожу пароль с латиницей (пробывал и чисто цифры и цифры +латиница), но выдаёт, что не правильно ввёл пароль (а именно нарушение регистра).
Строки где указан какой должен быть регистр:
C++:
new regex:rg_passwordcheck = regex_new("^[a-zA-Z0-9](1,)$");
if(regex_check(inputtext, rg_passwordcheck))
Код регистрации (ещё не доделан, строки, которые указывают регистр отмечены красным):
C++:
stock ShowRegistration(playerid)
{
new dialog[403+(-2+MAX_PLAYER_NAME)];
format(dialog, sizeof(dialog),
"Уважаемый {42aaff}%s{FFFFFF}, мы рады видеть Вас на {42aaff}Revolution Role Play{FFFFFF}\n\
Аккаунт с таким ником не зарегистрирован\n\
Для игры на сервере Вы должны пройти регистрацию\n\n\
Придумайте сложный пароль для Вашего будущего аккаунта и нажмите \"Далее\"\n\
{42aaff}• Пароль должен быть от 8-ми до 32-ух символов\n\
• Пароль должен состоять только из чисел и латинских символов любого регистра",
player_info[playerid][NAME]
);
SPD(playerid, DLG_REG, DIALOG_STYLE_INPUT, "{42aaff}Регистрация{FFFFFF} • Ввод пароля", dialog, "Далее", "Выход");
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DLG_REG:
{
if(response)
{
if(!strlen(inputtext))
{
ShowRegistration(playerid);
return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Введите пароль в поле ниже и нажмите \"Далее\"");
}
if(strlen(inputtext) < 8 || strlen(inputtext) > 32)
{
ShowRegistration(playerid);
return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Длина пароля должна быть от 8-ми до 32-ух символов");
}
new regex:rg_passwordcheck = regex_new("^[a-zA-Z0-9](1,)$");
if(regex_check(inputtext, rg_passwordcheck))
{
strmid(player_info[playerid][PASSWORD], inputtext, 0, strlen(inputtext), 32);
SPD(playerid, DLG_REGEMAIL, DIALOG_STYLE_INPUT, "{42aaff}Регистрация{FFFFFF} • Ввод Email",
"{FFFFFF}Введите Ваш настоящий Email адрес\n\
Если Вы потеряете доступ к аккаунту, то Вы сможете восстановить его через Email\n\
Введите его в поле ниже и нажмите \"Далее\"",
"Далее", "");
}
else
{
ShowRegistration(playerid);
return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Пароль может состоять только из чисел и латинских символов любого регистра");
}
}
else
{
SCM(playerid, COLOR_RED, "Используйте \"/q\", чтобы покинуть сервер");
SPD(playerid, -1, 0, " ", " ", " ", "");
return Kick(playerid);
}
}
}
return 1;
}
