Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, pessoal.

Tenho um código que funciona perfeitamente no localhost, mas quando passo pra minha hospedagem ele não consegue receber os dados do banco.

    public function login(getSet $logar){
        $login = $logar->getUsuario();
        $senha = $logar->getSenha();
        if(isset($login) && isset($senha)){
        $sql = "SELECT * FROM cliente WHERE usuario = ? AND senha = ?";
        $stmt = banco::getConecta()->prepare($sql);
        $stmt->bindValue(1, $login);
        $stmt->bindValue(2, $senha);
        $stmt->execute();
        $r = $stmt->fetch(PDO::FETCH_OBJ);
        if ($r){
                $_SESSION['id'] = $r->id;
                $_SESSION['usuario'] = $r->usuario;
                $_SESSION['nome'] = $r->nome;
                $_SESSION['email'] = $r->email;
                $_SESSION['celular'] = $r->celular;
        }
        else {
            $array = ["open" => "open", "incorreto" => "Usuário ou senha incorretos!", "usuario" => $login];
            return ($array);
        }
        }
    }

Eu entendi que o erro vem da parte $r = $stmt->fetch(PDO::FETCH_OBJ)

Quando eu uso esse código na hospedagem, ele retorna um boolean(false), quando uso no localhost tenho isso:

object(stdClass)[6]

public 'id' => string '14' (length=2)

public 'usuario' => string 'william' (length=7)

public 'nome' => string 'William Barreto da Silva' (length=24)

public 'celular' => string '95071-1318' (length=10)

public 'email' => string '[email protected]' (length=25)

public 'senha' => string '123' (length=3)

 

Já tentei usar fetch(PDO::FETCH_ASSOC) e fetchObject(), mas não obtive sucesso. 

Entendi que o erro se dá pelo fato do código não funcionar na hospedagem, porém não sei por que. Teria alguma forma de contornar esse problema ?

Se tiverem qualquer outra forma de fazer, agradeço.  ^^

Desde já, obrigado.

Postado

Ta tudo perfeitinho, ele não retorna nenhum erro de conexão.
Como disse, o único problema é que ele literalmente não encontra dados, e tenho total certeza de que os dados existem, e que todo o resto funciona perfeitamente.

Postado

http://php.net/manual/pt_BR/pdostatement.fetch.php
 

"The return value of this function on success depends on the fetch type. In all cases, FALSE is returned on failure."

Ainda acho que é algum problema com a conexão, pois se estivesse voltando dados vazios, ele estaria retornando pelo menos os indexes das colunas.

Se você tenta rodar alguma outra query, funciona?

  • Moderador
Postado

Não sei lidar direito com o PDO, sempre usei o MySQLi. Mas veja se pode ser caso da extensão PDO no servidor online com problemas.

Nesse caso, o melhor jeito de saber é contactar o suporte do seu servidor.

Se você alega que funciona em localhost, quer dizer que não é problema de código, mas sim da parte deles.

Postado

Esse é o site, estou usando esse servidor para testes antes de enviar pra hospedagem.

http://hospedagem.ifspguarulhos.edu.br/~gu1500341/public_html/index.php#page-top

Todos os dados dos produtos nele são valores que vem do banco de dados, busca e várias outras coisas que depende dessa conexão funcionam perfeitamente.

Ele contem os seguintes var_dump:

var_dump($logar); //Variaveis do get set.

var_dump($stmt); //Query dos dados.

var_dump($r); //Variável que deverá receber os valores do banco.

var_dump($_SESSION); //Início da sessão.

Se fizer login poderá ver os resultados do $r e $stmt, entenderá melhor o que estou falando.

@DiF Eu não sei ao certo sobre isso, terça terei aula e irei perguntar sobre o funcionamento do servidor e saber mais ao certo.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...