Pessoal, este é meu arquivo de conexão:
$servidor = "localhost"; $usuario = "root"; $senha = "Ackgomes01"; $dbname = "projetoipe"; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
E este checo os dados inseridos do usuário para validar o login e senha:
<?php session_start(); include_once "conexao.php"; $btnLogin = filter_input(INPUT_POST, 'btnLogin', FILTER_SANITIZE_STRING); if($btnLogin) { /*echo "tentar logar";*/ $usuario = filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING); $senha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING); /*echo "$usuario - $senha";*/ if((!empty($usuario)) AND (!empty($senha))) { //gerar senha e criptografar //echo password_hash($senha, PASSWORD_DEFAULT); //Pesquisar o usuario no banco de dados $result_usuario = "SELECT id, nome, email, senha FROM usuarios WHERE usuario='$usuario'"; $resultado_usuario = mysqli_query($conn, $result_usuario); if($resultado_usuario) { $row_usuario = mysqli_fetch_assoc($resultado_usuario); if(password_verify($senha, $row_usuario['senha'])) { $_SESSION['id'] = $row_usuario['id']; $_SESSION['nome'] = $row_usuario['nome']; $_SESSION['email'] = $row_usuario['email']; header("Location: admin.php"); } else { $_SESSION['msg'] = "LOGIN OU SENHA INCORRETOS!"; header("Location: login.php"); } } } else { $_SESSION['msg'] = "Login ou senha incorretos!"; header("Location: login.php"); } } else { $_SESSION['msg'] = "Página não encontrada!"; header("Location: login.php"); }
Acontece que a validação dos dados é feita quando inserido no banco a senha criptograda. Quando insiro a senha tipo: usuario: teste senha: 123, não consigo validar estes dados.
No arquivo acima, é utilizado a API do PHP para criptografar a senha. Seria possível deixar o MySQL fazer isso?
Obrigado.