✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como criar um sistema de login PHP para o seu site

29

Você está procurando integrar um sistema de login em PHP? Neste artigo, mostro como fazer um fluxo de login básico em PHP. Criaremos um formulário de login, validaremos as credenciais e redirecionaremos o usuário na página da conta. Eu também adicionaria um código para fazer o logout do usuário. Além disso, exibiremos as mensagens de erro se as credenciais incorretas forem inseridas.

Para o propósito do tutorial, presumo que você esteja usando o hash ‘md5’ para armazenar a senha. Gostaria de escrever o código considerando o hash md5 de uma string. Você pode estar usando outro algoritmo. Nesse caso, você precisa alterar a consulta de acordo com seu algoritmo.

Para integrar o fluxo de login, precisamos de uma tabela de banco de dados que armazene os detalhes do usuário. Nesta tabela, validamos se o usuário inseriu as credenciais corretas ou não. Se as credenciais do usuário estiverem corretas, apenas ele deve ter acesso às páginas protegidas.

No meu caso, criei uma tabela de ‘usuários’ e adicionei algumas entradas fictícias. Também adicionei uma coluna de ‘status’ que será usada para descobrir se uma conta está ativa ou não. Esta coluna possui tipo de dados ENUM com valores 0 e 1.

  • 1: a conta está ativa
  • 0: a conta não está ativa

Como criar um sistema de login PHP para o seu site

Crie um formulário de login

Para começar, vamos criar um formulário de login onde os usuários podem inserir suas credenciais. Estou usando uma estrutura de Bootstrap para construir um formulário de login. Meu index.phparquivo contém o código abaixo.

<!DOCTYPE html>
<html>
    <head>
        <title>Login Form</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                    <h3>Login Form</h3>
                    <?php if(!empty($error_message)) { ?>
                        <div class="alert alert-danger"><?php echo $error_message; ?></div>
                    <?php } ?>
                    <form method="post">
                        <div class="form-group">
                            <label for="exampleInputEmail1">Email address</label>
                            <input type="email" class="form-control" id="exampleInputEmail1" name="email" placeholder="Email" required />
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1">Password</label>
                            <input type="password" class="form-control" id="exampleInputPassword1" name="password" placeholder="Password" required />
                        </div>
                        <button type="submit" name="submit" class="btn btn-primary">Submit</button>
                    </form>
                </div>
            </div>
        </div>
    </body>
</html>

O código acima exibirá o formulário de login, conforme mostrado na imagem abaixo.

Como criar um sistema de login PHP para o seu site

Eu adicionei a variável $error_messageno código que irá imprimir os erros de login.

Código PHP para validar as credenciais dos usuários

Você está pronto com o formulário de login e a tabela do banco de dados. Em seguida, ao enviar um formulário, temos que escrever o código PHP que verifica as credenciais do usuário contra os registros do banco de dados. Se os detalhes estiverem corretos, faça o login do usuário no sistema e redirecione para a myaccount.phppágina.

Crie um config.phparquivo e adicione um código para a conexão do banco de dados.

<?php
$conn = new mysqli('DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_NAME');
 
if ($conn->connect_errno) {
    echo "Error: ". $conn->connect_error;
}
?>

Substitua os marcadores de posição pelos valores reais.

Agora, no index.phparquivo antes do início da tag html, adicione o código abaixo.

<?php
session_start();
  
require_once('config.php');
  
//if user is logged in redirect to myaccount page
if (isset($_SESSION['id'])) {
    header('Location: myaccount.php');
}
  
$error_message = '';
if (isset($_POST['submit'])) {
 
    extract($_POST);
 
    if (!empty($email) && !empty($password)) {
        $sql = "SELECT id, status FROM users WHERE email = '".$conn->real_escape_string($email)."' AND password = '".md5($conn->real_escape_string($password))."'";
        $result = $conn->query($sql);
  
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            if($row['status']) {
                $_SESSION['id'] = $row['id'];
                header('Location: myaccount.php');
            } else {
                $error_message = 'Your account is not active yet.';
            }
        } else {
            $error_message = 'Incorrect email or password.';
        }
    } else {
        $error_message = 'Please enter email and password.';
    }
}
?>

Aqui no código, ao verificar a senha, usei o método PHP md5, supondo que você armazenou a senha usando esse algoritmo.

Código de Logout

A próxima parte é adicionar o código para fazer o logout do usuário. Para isso, crie o myaccount.phparquivo. Mais uma coisa necessária para lidar com a qual apenas usuários logados devem acessar esta página.

myaccount.php

<?php
session_start();
 
if (isset($_GET['action']) && ('logout' == $_GET['action'])) {
    unset($_SESSION['id']);
}
 
if (isset($_SESSION['id'])) {
    ?>
    <h3>Welcome User! <a href="?action=logout">Logout</a></h3>
    <?php
} else { //redirect to login page
    header('Location: index.php');
}
?>

Usando a sessão de PHP, estamos decidindo se dar acesso a esta página ou não. Se a sessão não estiver configurada, redirecione o usuário para a página de login.

Espero que você entenda os fundamentos da construção de um sistema de login em PHP. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação