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.