Вопрос Как правильно реализовать проверку?

Забаненный
Статус
Оффлайн
Регистрация
24 Июн 2020
Сообщения
72
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
У меня есть php скрипт, который проверяет отправленные данные на валидность. Всего есть 4 исхода: INVALID_PASSWORD (неправильный праволь), INVALID_HWID (хвид не совпадает), INVALID_LOGIN (логина в бд нет) и ALL_CORRECT (все совпадает).
Проблема заключается в том, что я не могу сделать проверку правильно.
Как делаю проверку я:

C#:
if (reader.ReadToEnd() == "INVALID_PASSWORD")
     MessageBox.Show("Invalid password");
if (reader.ReadToEnd() == "INVALID_HWID") //пробовал else if
    MessageBox.Show("Invalid hwid");
else if (reader.ReadToEnd() == "INVALID_LOGIN")
    MessageBox.Show("Invalid hwid");
else
    MessageBox.Show("Login success!");
Вместо if пробовал ставить else if, но не помогает. Иногда после нажатия на кнопку вообще ничего не происходит, а иногда он выводит не ту ошибку(бывает так, что пароль правильный, но хвид не совпадает, но прога всё равно пускает). Если же ввести ссылку в браузере самому, то скрипт отлично работает.
Как можно реализовать проверку?
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
У меня есть php скрипт, который проверяет отправленные данные на валидность. Всего есть 4 исхода: INVALID_PASSWORD (неправильный праволь), INVALID_HWID (хвид не совпадает), INVALID_LOGIN (логина в бд нет) и ALL_CORRECT (все совпадает).
Проблема заключается в том, что я не могу сделать проверку правильно.
Как делаю проверку я:

C#:
if (reader.ReadToEnd() == "INVALID_PASSWORD")
     MessageBox.Show("Invalid password");
if (reader.ReadToEnd() == "INVALID_HWID") //пробовал else if
    MessageBox.Show("Invalid hwid");
else if (reader.ReadToEnd() == "INVALID_LOGIN")
    MessageBox.Show("Invalid hwid");
else
    MessageBox.Show("Login success!");
Вместо if пробовал ставить else if, но не помогает. Иногда после нажатия на кнопку вообще ничего не происходит, а иногда он выводит не ту ошибку(бывает так, что пароль правильный, но хвид не совпадает, но прога всё равно пускает). Если же ввести ссылку в браузере самому, то скрипт отлично работает.
Как можно реализовать проверку?
Проблема явно не в выводе ошибки, попробуй продебажить код и понять, что передается клиенту в случаях с неправильным выводом
 
Забаненный
Статус
Оффлайн
Регистрация
24 Июн 2020
Сообщения
72
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проблема явно не в выводе ошибки, попробуй продебажить код и понять, что передается клиенту в случаях с неправильным выводом
А если в хедере указать юзер агент, то поможет или нет? Как думаешь?
 
Пользователь
Статус
Оффлайн
Регистрация
13 Фев 2019
Сообщения
159
Реакции[?]
49
Поинты[?]
0
можно делать без else if, просто так с казать всё проверять по этапно, if делать, а вот в конце else, зачем? если у тебя не выполняется if то будет срабатывать else то есть login succes
upd
вот проверка по api с отдельным классом, но надеюсь ты поймёшь примерно как реализовать на примере:

if (ApiInfo.success && !ApiInfo.is_banned) //Проверка на бан
{

if (IsPremium != -1) //Проверка на сабку
{
if (ApiInfo.HWID != "") //Проверка на наличие привязанного хвида
{
if (ApiInfo.HWID == System.Security.Principal.WindowsIdentity.GetCurrent().User.Value) //Проверяем хвид.
{
hwcorrect = true; //Хвид правильный
// Если мы тут, значит данные введены верно, делаем открытие главной формы
MainMenu form = new MainMenu(); //create a new main form
this.Hide(); //hide this form
//form.Show(); //open the new main form

mainForm1.Show();
}
else
{
hwcorrect = false; //Хвид неправильный
this.Hide();
mainForm1.Show();
}
}
else
{
this.Hide();
Clipboard.SetText(System.Security.Principal.WindowsIdentity.GetCurrent().User.Value);
MessageBox.Show("Вам необходимо привязать HWID, свяжитесь с поддержкой. \nHWID скопирован в буфер обмена.", "");

Process.GetCurrentProcess().Kill();
}
}
else
{
MessageBox.Show("У вас нет доступа.", "");
}

}
else
{
MessageBox.Show("Вы забанены.", "");
}
 
Начинающий
Статус
Оффлайн
Регистрация
24 Май 2020
Сообщения
197
Реакции[?]
25
Поинты[?]
0
У меня есть php скрипт, который проверяет отправленные данные на валидность. Всего есть 4 исхода: INVALID_PASSWORD (неправильный праволь), INVALID_HWID (хвид не совпадает), INVALID_LOGIN (логина в бд нет) и ALL_CORRECT (все совпадает).
Проблема заключается в том, что я не могу сделать проверку правильно.
Как делаю проверку я:

C#:
if (reader.ReadToEnd() == "INVALID_PASSWORD")
     MessageBox.Show("Invalid password");
if (reader.ReadToEnd() == "INVALID_HWID") //пробовал else if
    MessageBox.Show("Invalid hwid");
else if (reader.ReadToEnd() == "INVALID_LOGIN")
    MessageBox.Show("Invalid hwid");
else
    MessageBox.Show("Login success!");
Вместо if пробовал ставить else if, но не помогает. Иногда после нажатия на кнопку вообще ничего не происходит, а иногда он выводит не ту ошибку(бывает так, что пароль правильный, но хвид не совпадает, но прога всё равно пускает). Если же ввести ссылку в браузере самому, то скрипт отлично работает.
Как можно реализовать проверку?
На мой взгляд проще же:
Код:
if (reader.ReadToEnd() == "ALL_CORRECT")
{
    // Выполняем код

}else{
    // Тут проверяем в чём ошибка.

}
 
Забаненный
Статус
Оффлайн
Регистрация
24 Июн 2020
Сообщения
72
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу