Диалог авторизации
#1

Зарегистрировал аккаунт, пароль которого состоит из 6 символов, но при авторизации меня пускает с абсолютно любым паролем, лишь бы он состоял из 6 символов. В чём проблема? http://pastebin.com/DVTNxzr5

P.S.: На иероглифы не обращайте внимание.
Reply
#2

if(strlen(inputtext) != strlen(password) && strcmp(inputtext, password, true))
if(strcmp(inputtext, password, false))
Reply
#3

Изменить true на false? Сделал, ничего не изменилось.
Reply
#4

Удалил сообщение.
Reply
#5

Зачем вам сверка длины, если по сути strcmp это "учитывает".
Reply
#6

Quote:
Originally Posted by White_116
Посмотреть сообщение
Зачем вам сверка длины, если по сути strcmp это "учитывает".
Я не понимаю Вас, можете подробнее объяснить, если не сложно?
Reply
#7

pawn Код:
if(strlen(inputtext) != strlen(password) || strcmp(inputtext, password, true))
Reply
#8

Quote:
Originally Posted by Alexander_Petrov
Посмотреть сообщение
pawn Код:
if(strlen(inputtext) != strlen(password) || strcmp(inputtext, password, true))
Огромное спасибо
Reply
#9

Quote:
Originally Posted by White_116
Посмотреть сообщение
Зачем вам сверка длины, если по сути strcmp это "учитывает".
Не совсем, например:
pawn Код:
strcmp("", "test", true)
возвратит не то, что ожидается, то есть 0.

Тут подробно на английском: https://sampforum.blast.hk/showthread.php?tid=69444
Самое быстрое решение проблемы от ******: http://forum.sa-mp.com/showpost.php?...82&postcount=9
Reply
#10

Конечно тупо, но я сделал так у себя
PHP код:
stock CompareStr(string1[], string2[], bool:ignorecase false)
{
    if(
strlen(string1) == || strlen(string2) == 0) return 0;
    if(
strcmp(string1,string2,ignorecase) != 0) return 0;
    return 
1;

Вернёт 1, если совпадают, в противном случае вернёт 0
Reply
#11

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Конечно тупо, но я сделал так у себя
PHP код:
stock CompareStr(string1[], string2[], bool:ignorecase false)
{
    if(
strlen(string1) == || strlen(string2) == 0) return 0;
    if(
strcmp(string1,string2,ignorecase) != 0) return 0;
    return 
1;

Вернёт 1, если совпадают, в противном случае вернёт 0
не надо писать stock там где он не нужен:
pawn Код:
bool:CompareStr(string1[], string2[], bool:ignorecase = false) {
    return !(!strlen(string1) || !strlen(string2) || strcmp(string1, string2, ignorecase));
}
Reply
#12

Stepashka, в моём случае это действительно stock, и вернуть нужно было или 1 или 0, но у каждого частные случаи
Reply
#13

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Stepashka, в моём случае это действительно stock, и вернуть нужно было или 1 или 0, но у каждого частные случаи
в твоем случае разницы не будет.
В чем проблема дописать в конце ... ? 1 : 0 и все.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)