Я получаю с сервера ответ о регистрации. Если ответ 1 то логин свободен, если 0 то нет. В приложении проверяю этот ответ. Но то что мне приходит никак не хочет сравниваться.
` String resp = null;
try {
db.execute("registration.php", newacc);
resp = db.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
//test.setText(resp);
if (!resp.equals("0")) {
startActivity(new Intent(Registration.this, Login.class));
} else toast4.show();`
Я уже перепробовал все что мог но ничего не работает. Если приходит 0, то приложение все равно заходит в блок if и переходит на другую активити. Вот еще PHP код
<?php
require "conn.php";
mysqli_set_charset($conn,"utf8");
if (isset ($_POST['login'],$_POST['password'],$_POST['salt'],$_POST['reg_date'],$_POST['name'],$_POST['number'])){
$login= $_POST['login'];
$pass= $_POST['password'];
$salt= $_POST['salt'];
$reg_date= $_POST['reg_date'];
$name= $_POST['name'];
$number= $_POST['number'];
$querry0 = mysqli_query($conn,"SELECT login FROM account WHERE login = '$login'");
if(mysqli_num_rows($querry0) == 0){
$querry1 = mysqli_query($conn,"INSERT INTO account (login, password,salt, registration_date) VALUES ('$login', '$pass','$salt', '$reg_date')") or die(mysqli_error($conn));
$querry2 = mysqli_query($conn,"INSERT INTO client (client_name, phone_number, email) VALUES ('$name', '$number','$login' )") or die(mysqli_error($conn));
echo "1";
}else echo "0";
}else echo "err";
?>
Перевел строки в HEX: строка с сервера - efbbbf30, а с которой сравниваю - 30.При чем везде стоит кодировка в UTF-8. Как с этим быть?
В общем я теперь просто сравниваю строки в HEX. Костыль, но работает.
php добавляет BOM(Byte Order Mark) в Юникод.
Java, а следовательно Андроид при декодировании не удаляет его (уж не знаю почему) и надо это делать самому.
В Вашем случае нужен один символ (как я понял) и можно сравнить только его:
if (resp.charAt(resp.length() - 1) != '0')) {
startActivity(new Intent(Registration.this, Login.class));
} else toast4.show();
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости