Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Comment créer un système de connexion PHP pour votre site Web

446

Vous cherchez à intégrer un système de login en PHP? Dans cet article, je vous montre comment créer un flux de connexion de base en PHP. Nous allons créer un formulaire de connexion, valider les informations d’identification et rediriger l’utilisateur sur la page du compte. J’ajouterais également un code pour déconnecter l’utilisateur. De plus, nous afficherons les messages d’erreur si de mauvaises informations d’identification sont saisies.

Pour le tutoriel, je suppose que vous utilisez le hachage ‘md5’ pour stocker le mot de passe. J’écrirais le code en tenant compte du hachage md5 d’une chaîne. Vous utilisez peut-être un autre algorithme. Dans ce cas, vous devez modifier la requête selon votre algorithme.

Afin d’intégrer le flux de connexion, nous avons besoin d’une table de base de données qui stocke les détails de l’utilisateur. Par rapport à ce tableau, nous validons si l’utilisateur a saisi les informations d’identification correctes ou non. Si les informations d’identification de l’utilisateur sont correctes, alors seulement ils devraient avoir accès aux pages sécurisées.

Dans mon cas, j’ai créé une table « utilisateurs » et ajouté des entrées factices. J’ai également ajouté une colonne ‘statut’ qui sera utilisée pour savoir si un compte est actif ou non. Cette colonne a le type de données ENUM avec les valeurs 0 et 1.

  • 1: le compte est actif
  • 0: le compte n’est pas actif

Comment créer un système de connexion PHP pour votre site Web

Créer un formulaire de connexion

Pour commencer, créons un formulaire de connexion où les utilisateurs peuvent saisir leurs informations d’identification. J’utilise un framework Bootstrap pour créer un formulaire de connexion. Mon index.phpfichier contient le code ci-dessous.

<!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>

Le code ci-dessus affichera le formulaire de connexion comme indiqué dans la capture d’écran ci-dessous.

Comment créer un système de connexion PHP pour votre site Web

J’ai ajouté la variable $error_messagedans le code qui imprimera les erreurs de connexion.

Code PHP pour valider les informations d’identification des utilisateurs

Vous êtes prêt avec le formulaire de connexion et la table de base de données. Ensuite, lors de la soumission d’un formulaire, nous devons écrire du code PHP qui vérifie les informations d’identification de l’utilisateur par rapport aux enregistrements de la base de données. Si les détails sont corrects, connectez l’utilisateur au système et redirigez-le vers la myaccount.phppage.

Créez un config.phpfichier et ajoutez un code pour la connexion à la base de données.

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

Remplacez les espaces réservés par les valeurs réelles.

Maintenant, dans le index.phpfichier avant le début de la balise html, ajoutez le code ci-dessous.

<?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.';
    }
}
?>

Ici dans le code, tout en vérifiant le mot de passe, j’ai utilisé la méthode PHP md5 en supposant que vous avez stocké le mot de passe en utilisant cet algorithme.

Code de déconnexion

La partie suivante consiste à ajouter du code pour déconnecter l’utilisateur. Pour cela, créez un myaccount.phpfichier. Une autre chose à gérer, qui est uniquement réservée aux utilisateurs connectés, doit accéder à cette page.

moncompte.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');
}
?>

En utilisant une session PHP, nous déterminons s’il faut donner accès à cette page ou non. Si la session n’est pas définie, redirigez l’utilisateur vers la page de connexion.

J’espère que vous comprenez les bases de la construction d’un système de connexion en PHP. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails