Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal, estou quase concluindo um aplicativo, porém estou empacado nessa situação.
Fiz um sistema simples de registro e login apenas pra guardar valores do celular no mysql, ele guarda todos os valores certinhos, também fiz um sistema simples de ranking usando Android, MySql e PHP, ele retorna tudo perfeito.
Porém quando eu tento fazer o login comparando o usuario e senha do banco de dados pelo android, ele me retorna como valor nulo, sendo que se eu editar o php com usuario e senha, ele retorna no browser os dados referente ao usuário, alguém saberia o por que?
Sistema de Registrar:
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();
}
}
}
});
}
}
PHP do registro:
<?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);
?>
Sistema de Logar:
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();
}
}
}
});
}
}
PHP do Login:
<?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);
?>
Sistema do Ranking:
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 que faz a função do ranking:
<?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);
?>
Site que estou utilizando para testes:
https://zotinfogames.000webhostapp.com/tapball/logartapball.php
Aqui está a saida utilizando usuario teste direto no php de login:
[
{
ID: "4",
NOME: "teste",
SENHA: "teste",
EMAIL: "teste",
DINHEIRO: "205",
RECORDE: "165",
CLIQUES: "64",
MAIOR_NIVEL: "3",
TOTAL_GANHO: "205",
REGISTRADO: "1",
LOGAR: "OK"
}
]
Obrigado por qualquer ajuda que vier.
Carregando comentários...