0
Warning: mysqli_query() expects Parameter 1 to be mysqli, string Given in Sqlfunctions.php on line 13
Login.php:
<?php
if(isset($_POST['usuario']) && isset($_POST['senha'])) {
  require_once("class/Autenticacao.php");
  $Autenticacao = new Autenticacao();
  $login        = $_POST['usuario'];
  $password     = $_POST['senha'];
  $Autenticacao->setLogin($login);
  $Autenticacao->setPassword($password);
  $Autenticacao->autenticate();
}
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
<title>Área Administrativa</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <!-- Le styles -->
    <link href="css/bootstrap.css" rel="stylesheet">
    <style type="text/css">
      body {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #f5f5f5;
      }
      .form-signin {
        max-width: 300px;
        padding: 19px 29px 29px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
      }
    </style>
    <link href="css/bootstrap-responsive.css" rel="stylesheet">
    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->
    <!-- Fav and touch icons -->
    
</head>
    <body>
    <div class="container">
      <form class="form-signin" name="frmLogin" id="frmLogin" method="post" action="">
        <h2 class="form-signin-heading">Por favor insira</h2>
        <input type="text" name="usuario" id="usuario" class="input-block-level" placeholder="Usuario">
        <input type="password" name="senha" id="senha" class="input-block-level" placeholder="Senha">
        <!-- <label class="checkbox">
          <input type="checkbox" value="remember-me"> Remember me
        </label> -->
        <button class="btn btn-large btn-success" type="submit" name="enviar" id="enviar" value="Login">Entrar</button>
        </br>
        Seja bem vindo ao *****. Entre com suas credenciais para ter acesso ao sistema.
      </form>
    </div> <!-- /container -->
    
    </body>
</html>
Php authentication.
<?php
require_once("SQLFunctions.php");
class Autenticacao {
    private $login;
    private $password;
    private $autenticado;
    public function __construct() 
    {
        
        if(!isset($_SESSION)) 
        session_start();
    }
    public function autenticate() {
        $SQLFunctions = new SQLFunctions();
        $sql = "SELECT * FROM usuarios WHERE login_usuario = '". $this->getLogin() ."' AND senha_usuario = '". $this->getPassword() ."'";
        $SQLFunctions->setSql($sql);
        $usuario = $SQLFunctions->listAll(true);
        // Se usuário for cadastrado na base de dados       
        if(!empty($usuario)) {
            
            $_SESSION['autenticacao'] = $usuario;
            header("Location: index.php");
        
        } else {
            header("Location: login.php");
        }
    }
    public static function hasAutenticate() {
        if(isset ($_SESSION) && isset($_SESSION['autenticacao']) && !empty($_SESSION['autenticacao'])) {
            return true;
        } else {
            return false;
        }
    }
    public function logoff() {
        unset($_SESSION['autenticacao']);
        session_unset();
        session_destroy();
    }
    public function verifyPermissions($idUsuario=null, $aliasModulo=null, $aliasAcao=null) {
        $sql = "SELECT * 
                FROM 
                    permissoes 
                LEFT JOIN usuarios ON usuarios.id_usuario = permissoes.id_permissao_usuario
                LEFT JOIN acoes ON acoes.id_acao = permissoes.id_permissao_acao
                LEFT JOIN modulos ON modulos.id_modulo = acoes.id_acao_modulo
                WHERE 1=1
                ". (!is_null($idUsuario) ? " AND usuarios.id_usuario = ". $idUsuario ."" : "") ."
                ". (!is_null($aliasModulo) ? " AND modulos.alias_modulo = '". $aliasModulo ."'" : "") ."
                ". (!is_null($aliasAcao) ? " AND acoes.alias_acao = '". $aliasAcao ."'" : "") ."
                ORDER BY id_permissao ASC";
                $SQLFunctions = new SQLFunctions();
                $SQLFunctions->setSql($sql);
                $permissoes = $SQLFunctions->listAll();
            // se todos argumentos vierem nulos, retornarar uma listagem de permissão
        if(is_null($aliasModulo) && is_null($aliasAcao) && is_null($idUsuario)) {
            return $permissoes;
            //retorna TRUE se usuário tiver permissão e FALSE caso usuário nao tenha permissão
        } else {
            // Usuário não tera permissoes
            if(is_null($permissoes) || empty($permissoes)) {
                return false;
                
            //Aqui usuário tem permissao de acessar
            } else {
                return true;
            }
        }
    }
    public function setLogin($valor)            { $this->login = $valor; }
    public function setPassword($valor)         { $this->password = md5($valor); }
        
    public function getLogin()                  { return $this->login; }
    public function getPassword()               { return $this->password; }
    
}
//$teste = new Autenticacao();
//$teste->setLogin("diego.valentim");
//$teste->setPassword("123456");
//$teste->autenticate();
?>
Sqlfunctions.php:
<?php
require_once("MysqlConnect.php");
class SQLFunctions extends MysqlConnect {
    private $sql;
    
    public function listAll($oneRow=false) {
        $sql        = $this->getSql();
        $qry        = mysqli_query($sql,"") or die ("Erro ao executar consulta: " . mysqli_connect_error());
        $resultado  = array();
        
        //$qry        = mysqli_query ( mysqli $qry , string $qry [, int $resultado = MYSQLI_STORE_RESULT ] ) : mixed or die ("Erro ao executar consulta: " . mysqli_connect_error());
        //Se usuário quiser que retorne somente um registro ao invés de uma lista
        if($oneRow) {
            $row = mysqli_fetch_assoc($qry);
            $resultado = $row;
        } else {
            while($rows = mysqli_fetch_assoc($qry)) {
                $resultado[] = $rows;
            }
        }
        return $resultado;
    }
    /** Metodos GETTER'S e SETTER'S (Encapsulamento) */
    public function setSql($valor)      { $this->sql = $valor; }
    public function getSql()            {return $this->sql; }
}
//$teste = new SQLFunctions();
//$teste->setSql("SELECT * FROM usuarios ORDER BY nome_usuario ASC");
//$rows = $teste->listAll(true);
//echo "<pre>"; print_r($rows); die();
?>
MysqlConnect.php:
<?php
    
    abstract class MysqlConnect {
    private $host;
    private $user;
    private $password;
    private $database;
    private $erro;
    private $connection;
    public function __construct() {
        $this->setHost("127.0.0.1:3306");
        $this->setUser("root");
        $this->setPassword("123456");
        $this->setDatabase("eventos_rurais");
        if(!$this->connect()) {
            die("Erro ao conectar a Base de Dados:" . $this->getErro());
        }
    }
    public function __destruct() {
        $this->disconnect();
    }
    public function connect() {
        try {
        
            $con = mysqli_connect($this->getHost(), $this->getUser(), $this->getPassword());
            $bd  = mysqli_select_db($con, $this->getDatabase());
            $this->setConnection($con);
            
            return true;
        } catch (Exception $e) {
            $this->setErro($e->getMessage());
            return false;
        }
    }
    public function disconnect(){
        mysqli_close($this->getConnection());
    }
    /** Metodos GETTER'S e SETTER'S (Encapsulamento) */
    private function setHost($valor)        { $this->host = $valor; }
    private function setUser($valor)        { $this->user = $valor; }
    private function setPassword($valor)    { $this->password = $valor; }
    private function setDatabase($valor)    { $this->database = $valor; }
    private function setErro($valor)        { $this->erro = $valor; }
    private function setConnection($valor)  { $this->connection = $valor; }
    private function getHost()              {return $this->host; }
    private function getUser()              {return $this->user; }
    private function getPassword()          {return $this->password; }
    private function getDatabase()          {return $this->database; }
    private function getErro()              {return $this->erro; }
    private function getConnection()        {return $this->connection; }
}
//echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
//echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
//mysqli_close($link);
?>