Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Erro após logar no login.php

Olá. No localhost a aplicação funciona muito bem, mas ao subir para o servidor, apresenta o seguinte erro:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/noteb431/public_html/driko/banco-usuario.php on line 9

Código do banco-usuario.php:

<?php require_once("conecta.php");

function buscaUsuario($conexao, $email, $senha) { $senhaMd5 = md5($senha); $email = mysqli_real_escape_string($conexao, $email); $query = "select * from usuarios where email='{$email}' and senha='{$senhaMd5}'"; $resultado = mysqli_query($conexao, $query); $usuario = mysqli_fetch_assoc($resultado); return $usuario; }

Obrigado!

7 respostas

William Tudo bem,

Fazendo uma análise em sua função php buscaUsuario(), quando chegamos em $resultado = mysqli_query($conexao, $query), nos deparamos com 2 parâmetros, em um projeto que participei, me deparei com esta situação. Como você subiu a aplicação em produção, nos descreva, qual é a versão do PHP em desenvolvimento e em produção. Tente tirar a váriavel $conexao de dentro do seu mysqli_query e deixe apenas a váriavel $query na produção e veja como se comporta, ok! Segue a descrição da função mysqli_query: http://php.net/manual/pt_BR/mysqli.query.php

Abraços. Leandro de Azevedo.

Outra coisa importante também, é verificar com var_dump($query); o que esta sendo passado a sua query, segue exemplo abaixo:

function buscaUsuario($conexao, $email, $senha){

$senhaMd5 = md5($senha); $email = mysqli_real_escape_string($conexao, $email); $query = "select * from usuarios where email='{$email}' and senha='{$senhaMd5}'"; var_dump($query); $resultado = mysqli_query($conexao, $query); $usuario = mysqli_fetch_assoc($resultado); return $usuario; }

Efetuar o debug para analise das passagens.

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/noteb431/public_html/driko/banco-usuario.php on line 9

Geralmente este error ocorre quando retorna false.

Eu concordo com o Leandro de Azevedo:

...Outra coisa importante também, é verificar com var_dump($query)...

Faça um var_dump e verifique o retorno de sua query.

Muito obrigado pela agilidade, vou fazer os testes e retorno o resultado.

Vejam o que o vardump retorna:

string(104) "select * from usuarios where email='bocagames@yahoo.com.br' and senha='e10adc3949ba59abbe56e057f20f883e'"

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/noteb431/public_html/driko/banco-usuario.php on line 9

Faça um var_dump da variável resultado.

PS: Este error pode acontecer por vários outros motivos.

Exemplo: A conexão não está sendo feita, a tabela usuarios não existe ou mesmo está com o nome diferente, etc...

solução!

Senhores, joguei um vardump em $usuarios e retornou null.

Deletei a tabela usuários, criei de novo e aí deu certo.

Obrigado.