Fatal error in login system

Asked

Viewed 72 times

0

I am making a login system in PHP and resulted in a fatal error:

Fatal error: Call to a Member Function num_rows() on a non-object in C: xampp htdocs avulso-2 valida-usuario.php on line 10

    <?php
      $conecta = new mysqli("localhost", "root", "", "avulso");

      $login = $conecta->real_escape_string($_POST['login']);
      $senha = $conecta->real_escape_string($_POST['senha']);

      $sql_usuario = "SELECT id, nome, login, senha FROM usuario WHERE login = " .$login. " AND senha = " .$senha. "LIMIT 1";
     $query_usuario = $conecta->query($sql_usuario);

     if($query_usuario->num_rows() != 1){ /* Nesta linha que ocorreu o erro: "Fatal error: Call to a member function num_rows() on a non-object in 
C:\xampp\htdocs\avulso-2\valida-usuario.php on line 10" */

    echo "Login inválido ou inexistente!";
     }
     else{
         $rs_usuario = $query_usuario->fetch_assoc();

         if(!isset($_SESSION)){
         session_star();
         $_SESSION['id'] = $rs_usuario['id'];
         $_SESSION['nome'] = $rs_usuario['nome'];

         header("Location: index.php"); exit;
      }

     }
   ?>
  • Your query failed, in text type values you need them to be in single quotes. you can do a test, of an echo in your sql and test in the database and see the error returned.

  • $sql_usuario = "SELECT id, name, login, password FROM user WHERE login = '$login' AND password = '$password' LIMIT 1"; So, Rray?

  • Yes, from an echo in $sql_usuario and run the query on the bank(can be phpmyadmin or other) see which error appears.

1 answer

0

Text values should be in single quotes in your query, as in the code below. num_rows is a property and not a method so do not need kinships.

$sql_usuario = "SELECT id, nome, login, senha FROM usuario WHERE login = '" .$login. "' AND senha = '" .$senha. "' LIMIT 1";
 $query_usuario = $conecta->query($sql_usuario);

 if($query_usuario->num_rows != 1){

Browser other questions tagged

You are not signed in. Login or sign up in order to post.