json_encode returns null in one situation and in another it returns the correct values

0

Good morning, I'm almost finishing an application, but I'm stuck in this situation. I made a simple system of registration and login just to store values of the mobile in mysql, it saves all the correct values, also made a simple ranking system using Android, MySql and PHP, it returns everything perfect. But when I try to login by comparing the database user and password with the android, it returns me as null value, and if I edit the php with username and password, it returns in the browser the data regarding the user, someone would know or why?

Registration System:

public void registrarConta(View v) {
    final String nome = profilename.getText().toString();
    final String senha = profilepass.getText().toString();
    final String email = profileemail.getText().toString();
    String id = profileid.getText().toString();

    String url = HOST + "/criartapball.php";


    if(nome.isEmpty()) {
        profilename.setError("Digite seu Nome!");
    } //else if()
    else if(senha.isEmpty()) {
        profilepass.setError("Digite uma Senha!");
    } else if(email.isEmpty()) {
        profileemail.setError("Digite seu Email!");
    } else if(id.isEmpty()) {
        final Future<JsonObject> jsonObjectFuture = Ion.with(registrar.this)
                .load(url)
                .setBodyParameter("NOME", nome)
                .setBodyParameter("SENHA", senha)
                .setBodyParameter("EMAIL", email)
                .setBodyParameter("DINHEIRO", "0")
                .setBodyParameter("RECORDE", "0")
                .setBodyParameter("CLIQUES", "0")
                .setBodyParameter("MAIOR_NIVEL", "0")
                .setBodyParameter("TOTAL_GANHO", "0")
                .setBodyParameter("REGISTRADO", "1")
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {

                        if(result == null) {
                            Toast.makeText(registrar.this, "Não foi possível! Verifique sua conexão.", Toast.LENGTH_LONG).show();
                        } else {
                            if (result.get("CREATE").getAsString().equals("OK")) {

                                int idRetornado = Integer.parseInt(result.get("ID").getAsString());

                                //-------- SISTEMA DE DADOS OFFLINE SALVOS NO CELULAR
                                SharedPreferences settings = getSharedPreferences("GAME_DATA", Context.MODE_PRIVATE);
                                SharedPreferences.Editor editor = settings.edit();

                                editor.putInt("TOTAL_GANHO", 0);
                                editor.putInt("DINHEIRO_ATUAL", 0);
                                editor.putInt("CLIQUES_FEITOS", 0);
                                editor.putInt("HIGH_SCORE", 0);
                                editor.putInt("MAIOR_LEVEL", 0);
                                editor.putString("NOME", nome);
                                editor.putString("SENHA", senha);
                                editor.putString("EMAIL", email);
                                editor.putInt("REGISTRADO", 1);
                                editor.putInt("ID_REGISTRO", idRetornado);
                                editor.commit();

                                Toast.makeText(registrar.this, "Jogador " + nome + " criado com Sucesso! ID: " + idRetornado, Toast.LENGTH_LONG).show();
                                Log.d(TAG, "Usuário Registrado:>>> " + nome + " - ID: " + idRetornado + " <<<");
                                startActivity(new Intent(getApplicationContext(), start.class));

                            } else {
                                Toast.makeText(registrar.this, "Nome já utilizado!", Toast.LENGTH_LONG).show();
                            }
                        }
                    }
                });
    }
}

Log PHP:

<?php 
include "conexaotapball.php";

$nome = $_POST['NOME'];
$senha = $_POST['SENHA'];
$email = $_POST['EMAIL'];
$dinheiro = $_POST['DINHEIRO'];
$record = $_POST['RECORDE'];
$cliques = $_POST['CLIQUES'];
$maior_nivel = $_POST['MAIOR_NIVEL'];
$total_ganho = $_POST['TOTAL_GANHO'];
$registrado = $_POST['REGISTRADO'];

$sql_insert = "INSERT INTO jogadores (NOME, SENHA, EMAIL, DINHEIRO, RECORDE, CLIQUES, MAIOR_NIVEL, TOTAL_GANHO, REGISTRADO) VALUES (:NOME, :SENHA, :EMAIL, :DINHEIRO, :RECORDE, :CLIQUES, :MAIOR_NIVEL, :TOTAL_GANHO, :REGISTRADO)";

$stmt = $PDO->prepare($sql_insert);

$stmt->bindParam(':NOME',$nome);
$stmt->bindParam(':SENHA',$senha);
$stmt->bindParam(':EMAIL',$email);
$stmt->bindParam(':DINHEIRO',$dinheiro);
$stmt->bindParam(':RECORDE',$record);
$stmt->bindParam(':CLIQUES',$cliques);
$stmt->bindParam(':MAIOR_NIVEL',$maior_nivel);
$stmt->bindParam(':TOTAL_GANHO',$total_ganho);
$stmt->bindParam(':REGISTRADO',$registrado);

if($stmt->execute()) {
    $id = $PDO->lastInsertId();
    $dados = array("CREATE"=>"OK", "ID"=>$id);
} else {
    $dados = array("CREATE"=>"ERRO");
    //echo $dados->getMessage();
}
echo json_encode($dados);

? >

Log in system:

public void logarConta(View v) {
    final String nome = profilename.getText().toString();
    final String senha = profilepass.getText().toString();

    final String url = HOST + "/login.php";


    if(nome.isEmpty()) {
        profilename.setError("Digite seu Nome!");
    }
    else if(senha.isEmpty()) {
        profilepass.setError("Digite sua Senha!");
    } else {
        final Future<JsonObject> jsonObjectFuture = Ion.with(logar.this)
                .load(url)
                .setBodyParameter("NOME", nome)
                .setBodyParameter("SENHA", senha)
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {
                        //atualizarDados();

                        if(result == null) {
                            Toast.makeText(logar.this, "Não foi possível! Verifique sua conexão.", Toast.LENGTH_LONG).show();
                        } else {
                            if (result.get("LOGAR").getAsString().equals("OK")) {

                                JsonObject obj = result.get(result.get("ID").getAsString()).getAsJsonObject();

                                rankingrecorde r = new rankingrecorde();
                                r.setID(Integer.valueOf(obj.get("ID").getAsString()));
                                r.setNome(obj.get("NOME").getAsString());
                                r.setSenha(obj.get("SENHA").getAsString());
                                r.setEmail(obj.get("EMAIL").getAsString());
                                r.setDinheiro(obj.get("DINHEIRO").getAsString());
                                r.setRecord(obj.get("RECORDE").getAsString());
                                r.setTotal_ganho(obj.get("TOTAL_GANHO").getAsString());
                                r.setMaior_nivel(obj.get("MAIOR_NIVEL").getAsString());
                                r.setCliques(obj.get("CLIQUES").getAsString());
                                r.setRegistrado(obj.get("REGISTRADO").getAsString());

                                //-------- SISTEMA DE DADOS OFFLINE SALVOS NO CELULAR
                                SharedPreferences settings = getSharedPreferences("GAME_DATA", Context.MODE_PRIVATE);
                                SharedPreferences.Editor editor = settings.edit();

                                editor.putInt("TOTAL_GANHO", Integer.valueOf(r.getTotal_ganho()));
                                editor.putInt("DINHEIRO_ATUAL", Integer.valueOf(r.getDinheiro()));
                                editor.putInt("CLIQUES_FEITOS", Integer.valueOf(r.getCliques()));
                                editor.putInt("HIGH_SCORE", Integer.valueOf(r.getRecord()));
                                editor.putInt("MAIOR_LEVEL", Integer.valueOf(r.getMaior_nivel()));
                                editor.putString("NOME", r.getNome());
                                editor.putString("SENHA", r.getSenha());
                                editor.putString("EMAIL", r.getEmail());
                                editor.putInt("REGISTRADO", Integer.valueOf(r.getRegistrado()));
                                editor.putInt("ID_REGISTRO", r.getID());
                                editor.commit();

                                Toast.makeText(logar.this, "Jogador " + obj.get("NOME").getAsString() + " logado com Sucesso!", Toast.LENGTH_LONG).show();
                                startActivity(new Intent(getApplicationContext(), start.class));

                            } else if (result.get("LOGAR").getAsString().equals("NAOEXISTE")) {
                                Toast.makeText(logar.this, "Nome ou senha incorretos!", Toast.LENGTH_LONG).show();
                            } else {
                                Toast.makeText(logar.this, "Nome já utilizado!", Toast.LENGTH_LONG).show();
                            }
                        }
                    }
                });
    }
}

Login PHP:

<?php 
include "conexaotapball.php";
$host = "localhost";
$db = "id7211556_tapballusers";
$usuario = "id7211556_zotinfotapball";
$senhadb = "tapballthegame";
$con = mysqli_connect($host,$usuario,$senhadb,$db);

$nome =  "teste"; //$_POST['NOME'];
$senha = "teste";// $_POST['SENHA'];

$sql_login = "SELECT * FROM jogadores WHERE NOME = '$nome' AND SENHA = '$senha'";

$dados_login = $PDO->query($sql_login);
$resultado_login = array();

$result = mysqli_fetch_array(mysqli_query($con,$sql_login));

if(isset($result)) {
    //$dados = array("LOGAR"=>"OK");
    while($jogador = $dados_login->fetch(PDO::FETCH_OBJ)){
        $resultado_login[] = array("ID"=>$jogador->ID, "NOME"=>$jogador->NOME, "SENHA"=>$jogador->SENHA, "EMAIL"=>$jogador->EMAIL,
        "DINHEIRO"=>$jogador->DINHEIRO, "RECORDE"=>$jogador->RECORDE, "CLIQUES"=>$jogador->CLIQUES, "MAIOR_NIVEL"=>$jogador->MAIOR_NIVEL,
        "TOTAL_GANHO"=>$jogador->TOTAL_GANHO, "REGISTRADO"=>$jogador->REGISTRADO,"LOGAR"=>"OK");
    }
} else {
    $resultado_login = array("LOGAR"=>"NAOEXISTE"); 
}
echo json_encode($resultado_login);
//echo json_encode($dados);
mysqli_close($con);

? >

Ranking System:

private void listaRanking(){

    String url = HOST + "/rankrecorde.php";

    Ion.with(getBaseContext())
            .load(url)
            .asJsonArray()
            .setCallback(new FutureCallback<JsonArray>() {
                @Override
                public void onCompleted(Exception e, JsonArray result) {
                    if(result == null) {
                        Toast.makeText(rankrecorde.this, "Não foi possível! Verifique sua conexão.", Toast.LENGTH_LONG).show();
                    } else {
                        for (int i = 0; i < result.size(); i++) {

                            JsonObject obj = result.get(i).getAsJsonObject();

                            rankingrecorde r = new rankingrecorde();
                            r.setNome(obj.get("NOME").getAsString());
                            r.setRecord(obj.get("RECORDE").getAsString());

                            lista.add(r);
                        }
                        rankAdapter.notifyDataSetChanged();
                    }
                }
            });

}

PHP that does the ranking function:

<?php
include "conexaotapball.php";

$sql_read = "SELECT * FROM jogadores ORDER BY RECORDE * 1 DESC LIMIT 10";
//$sql_readrecord = "SELECT NAME, RECORDE FROM jogadores ORDER BY RECORDE DESC";
$dados = $PDO->query($sql_read);
//$dados = $PDO->query($sql_readrecord);

$resultado = array();

while($jogador = $dados->fetch(PDO::FETCH_OBJ)){
    $resultado[] = array("ID"=>$jogador->ID, "NOME"=>$jogador->NOME, "RECORDE"=>$jogador->RECORDE);
}

echo json_encode($resultado);

? >

Website that I'm using for testing: link

Here is the output using direct test user in php login:

[

{ ID: "4", NAME: "test", PASSWORD: "test", EMAIL: "test", MONEY: "205", RECALL: "165", CLICKS: "64", MAJOR_NIVEL: "3", TOTAL_GAN: "205", REGISTERED: "1", LOG: "OK" } ]

Thanks for any help that comes.

    
asked by anonymous 25.09.2018 / 15:12

0 answers