Erro (Sistema de autenticação de usuários em PHP)

PHP

24/08/2017

Estou aprendendo fazer um Sistema de autenticação de usuários em PHP, estou seguindo as instruções do artigo: Link do Artigo

Após terminar o sistema ele esta me apresentando o erro: Fatal error: Uncaught Error: Call to undefined function mysql_query()

Linha do erro:
$result_id = @mysql_query($SQL) or die("Erro no banco de dados!"); 


Meu Código:
<?php

require "comum.php";

session_start();

// Recupera o login 
$login = isset($_POST["login"]) ? addslashes(trim($_POST["login"])) : FALSE; 
// Recupera a senha, a criptografando em MD5 
$senha = isset($_POST["senha"]) ? md5(trim($_POST["senha"])) : FALSE; 

// Usuário não forneceu a senha ou login
if(!$login || !$senha){
    echo "Você deve digitar sua senha e login!";
    exit;
}

/**
*Executa a consulta no banco de dados
*Caso o número de linhas retornadas seja 1 o login é válido
*Caso 0, inválido
**/

$SQL = "SELECT id, nome, login, senha, postar 
FROM aut_usuarios 
WHERE login = ". $login .""; 
$result_id = @mysql_query($SQL) or die("Erro no banco de dados!"); 
$total = @mysql_num_rows($result_id); 

// Caso o usuário tenha digitado um login válido o número de linhas será 1..
if($total){
    // Obtem os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão
    $dados = @mysql_fetch_array($result_id);

// Agora verifica a senha
if(!strcmp($senha, $dados['senha'])){
    // Tudo OK! Agora, passa os dados para a sessão e direciona o usuário
$_SESSION['id_usuario'] = $dados['id'];
$_SESSION['nome_usuario'] = stripslashes($dados['nome']);
$_SESSION[permissao] = $dados['postar'];
header("location: index.php");
exit;
}
// Senha inválida
else{
    echo "Senha inválida!";
    exit;
}
}
// Login inválido
else{
    echo "O login fornecido por você é inválido!";
    exit;
}
?>


Se alguém puder me explicar onde errei agradeço :D
Lucas Guedes

Lucas Guedes

Curtidas 0

Melhor post

Lucas Guedes

Lucas Guedes

24/08/2017

Alterei as linhas 27 e 28
$result_id = @mysql_query($SQL) or die("Erro no banco de dados!"); 
$total = @mysql_num_rows($result_id); 


Para:
$result_id = @mysqli_query($SQL) or die("Erro no banco de dados!"); 
$total = @mysqli_num_rows($result_id); 


Agora esta aparecendo o erro: Erro no banco de dados!
Porém verifiquei e esta tudo certo.

$SQL = "SELECT id, nome, login, senha, postar 
FROM aut_usuarios 
WHERE login = ". $login .""; 
$result_id = @mysqli_query($SQL) or die("Erro no banco de dados!"); 
$total = @mysqli_num_rows($result_id); 
GOSTEI 1

Mais Respostas

Ygor Leal

Ygor Leal

24/08/2017

Aqui vai um exemplo do meu login.

  if (!empty($_POST) AND (empty($_POST['mail']) OR empty($_POST['password']))) {
      header("Location: ../../index.php"); exit; // RETORNA SE ESTIVER EM BRANCO
  }

$result = $mysqli->query("SELECT * FROM `users` WHERE `mail` = '$my_mail' AND `password`= '$my_password'");
$resultados = mysqli_fetch_array($result);

if(mysqli_num_rows ($result) > 0)
{
	 $mysqli->query("UPDATE users SET last_online = '$today' WHERE `mail` = '$my_mail'"); // ULTIMO LOGIN
	 $mysqli->query("UPDATE users SET ip_last = '" . $_SERVER['REMOTE_ADDR'] . "' WHERE `mail` = '$my_mail'"); // ULTIMO IP
	 $_SESSION['id'] = $resultados['id'];
	 $_SESSION['password'] = $my_password;
	 header('location: ../../main/home');
}
else {
	 unset ($_SESSION['mail']);
	 unset ($_SESSION['password']);
	 header('location: ../../index.php?p=fail'); // RETORNA SE ESTIVER ERRADO
	 }
GOSTEI 0
POSTAR