Comment créer un système de connexion PHP pour votre site Web
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
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.php
fichier 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.
J’ai ajouté la variable $error_message
dans 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.php
page.
Créez un config.php
fichier 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.php
fichier 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.php
fichier. 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
- Enregistrement de l’utilisateur et système de connexion dans Laravel
- Connexion Google dans Laravel en utilisant Laravel Socialite
- Comment créer un système d’enregistrement PHP