Fórum Erro (Sistema de autenticação de usuários em PHP) #585254

24/08/2017

0

PHP

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:
1
$result_id = @mysql_query($SQL) or die("Erro no banco de dados!");


Meu Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?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

Responder

Post mais votado

24/08/2017

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


Para:
1
2
$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.

1
2
3
4
5
$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);

Lucas Guedes

Lucas Guedes
Responder

Gostei + 1

Mais Posts

24/08/2017

Ygor Leal

Aqui vai um exemplo do meu login.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  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
     }
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar