Créez un système de connexion puissant avec PHP en cinq étapes faciles — SitePoint

Publié le 10 décembre 2023 par Mycamer


Dans ce guide, vous apprendrez à créer un système de connexion puissant avec PHP ! Nous vous guiderons étape par étape tout au long du processus, afin que vous puissiez disposer en un rien de temps d'un système de connexion sécurisé et efficace pour votre site Web.

PHP et systèmes de connexion

PHP est un langage de script côté serveur populaire qui vous permet de créer des pages Web dynamiques. L'une des utilisations les plus courantes de PHP consiste à créer des systèmes de connexion pour les sites Web.

Un système de connexion est essentiel pour protéger les informations sensibles et fournir un contenu personnalisé aux utilisateurs. Dans ce didacticiel, nous allons créer un système de connexion simple mais puissant utilisant PHP et MySQL.

Nous couvrirons les étapes suivantes :

Configuration de votre environnement

Avant de commencer, assurez-vous que les logiciels suivants sont installés sur votre ordinateur :

  • un serveur Web (comme Apache)
  • PHP
  • MySQL

Vous pouvez utiliser un package comme XAMPP ou WAMP pour installer tous ces composants en même temps.

Une fois que tout est configuré, créez un nouveau dossier dans le répertoire racine de votre serveur Web (tel que htdocs pour Apache) et nommez-le login_system.

Création de la base de données et des tables

Tout d’abord, nous devons créer une base de données et des tables pour stocker les informations utilisateur.

Ouvrez votre outil d'administration MySQL (tel que phpMyAdmin) et créez une nouvelle base de données appelée login_system.

Ensuite, créez une table appelée users avec la structure suivante :

CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `email` varchar(100) NOT NULL, `password` varchar(255) NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Ce tableau stockera l'identifiant de l'utilisateur, le nom d'utilisateur, l'e-mail, le mot de passe et la date de création du compte.

Construire le formulaire d'inscription

Créons maintenant un formulaire d'inscription qui permet aux utilisateurs de créer un compte.

Créez un nouveau fichier appelé register.php dans ton login_system dossier et ajoutez le code suivant :

<form action="register.php" method="post">
  <label for="username">Username:</label> 
  <input id="username" name="username" required="" type="text" />
  <label for="email">Email:</label>
  <input id="email" name="email" required="" type="email" />
  <label for="password">Password:</label>
  <input id="password" name="password" required="" type="password" />
  <input name="register" type="submit" value="Register" />
</form>

Ce code crée un formulaire HTML simple avec des champs pour le nom d'utilisateur, l'e-mail et le mot de passe. Les formulaires action l'attribut est défini sur register.phpce qui signifie que les données du formulaire seront envoyées au même fichier pour traitement.

Maintenant, ajoutons le code PHP pour traiter les données du formulaire et insérons-le dans le users tableau.

Ajoutez le code suivant au début de votre register.php déposer, avant la déclaration :

<?php if (isset($_POST['register'])) { 


$mysqli = new mysqli("localhost", "username", "password", "login_system"); 


if ($mysqli->connect_error) { die("Connection failed: "  $mysqli->connect_error); } 


$stmt = $mysqli->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $username, $email, $password); 


$username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; 


$password = password_hash($password, PASSWORD_DEFAULT); 


if ($stmt->execute()) { echo "New account created successfully!"; } else { echo "Error: "  $stmt->error; } 


$stmt->close(); $mysqli->close(); }

Ce code vérifie si le formulaire a été soumis, se connecte à la base de données et insère les informations de l'utilisateur dans le users tableau. Le mot de passe est haché à l'aide du module intégré de PHP password_hash fonction pour plus de sécurité.

Construire le formulaire de connexion

Créons ensuite un formulaire de connexion qui permet aux utilisateurs de se connecter à leurs comptes. Créez un nouveau fichier appelé login.php dans ton login_system dossier et ajoutez le code suivant :

<form action="login.php" method="post">
  <label for="username">Username:</label>
  <input id="username" name="username" required="" type="text" />
  <label for="password">Password:</label> <input id="password" name="password" required="" type="password" />
  <input name="login" type="submit" value="Login" />
</form>

Ce code crée un formulaire HTML simple avec des champs pour le nom d'utilisateur et le mot de passe. L'attribut d'action du formulaire est défini sur login.phpce qui signifie que les données du formulaire seront envoyées au même fichier pour traitement.

Ajoutons maintenant le code PHP pour traiter les données du formulaire et authentifier l'utilisateur. Ajoutez le code suivant au début de votre login.php déposer, avant la déclaration :

<?php session_start(); if (isset($_POST['login'])) { 


$mysqli = new mysqli("localhost", "username", "password", "login_system"); 


if ($mysqli->connect_error) { die("Connection failed: "  $mysqli->connect_error); } 


$stmt = $mysqli->prepare("SELECT id, password FROM users WHERE username = ?"); $stmt->bind_param("s", $username); 


$username = $_POST['username']; $password = $_POST['password']; 


$stmt->execute(); $stmt->store_result(); 


if ($stmt->num_rows > 0) { 


$stmt->bind_result($id, $hashed_password); 


$stmt->fetch(); 


if (password_verify($password, $hashed_password)) { 


$_SESSION['loggedin'] = true; $_SESSION['id'] = $id; $_SESSION['username'] = $username; 


header("Location: dashboard.php"); exit; } else { echo "Incorrect password!"; } } else { echo "User not found!"; } 


$stmt->close(); $mysqli->close(); }

Ce code vérifie si le formulaire a été soumis, se connecte à la base de données et récupère les informations de l'utilisateur depuis le users tableau. Le mot de passe est vérifié à l'aide du module intégré de PHP password_verify fonction. Si la connexion réussit, l'utilisateur est redirigé vers un dashboard.php page.

Sécuriser votre système de connexion

Pour sécuriser davantage votre système de connexion, vous devez mettre en œuvre les bonnes pratiques suivantes :

  • Utilisez HTTPS pour crypter les données transmises entre le client et le serveur.
  • Implémentez la protection CSRF (cross-site request forgery) à l’aide de jetons.
  • Limitez le nombre de tentatives de connexion infructueuses pour empêcher les attaques par force brute.
  • Stockez les informations sensibles, telles que les informations d'identification de la base de données, dans un fichier de configuration distinct en dehors de la racine du document du serveur Web.
  • Mettez régulièrement à jour vos logiciels, y compris PHP, MySQL et votre serveur Web, pour appliquer les derniers correctifs de sécurité.

Conclusion

Toutes nos félicitations! Vous avez créé avec succès un système de connexion puissant avec des formulaires de connexion et sécurisé votre système de connexion.

to www.sitepoint.com


Suivez-nous sur Facebook : https://web.facebook.com/mycamer.net/
Pour recevoir les dernières nouvelles sur votre téléphone grâce à l’application Telegram, cliquez ici : https://t.me/+KMdLTc0qS6ZkMGI0
Envoyez-nous un message par Whatsapp : Whatsapp +237 650 50 31 31


The post Créez un système de connexion puissant avec PHP en cinq étapes faciles — SitePoint first appeared on Technique de pointe.