Fermer

mai 30, 2023

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

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


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

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 à l’aide de 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 vous avez tout 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 des utilisateurs.

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;

Cette table stockera l’identifiant, le nom d’utilisateur, l’e-mail, le mot de passe et la date à laquelle le compte a été créé.

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 de PHP intégré password_hash fonction pour plus de sécurité.

Construire le formulaire de connexion

Ensuite, créons 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 à partir du users tableau. Le mot de passe est vérifié à l’aide de PHP intégré password_verify fonction. Si la connexion réussit, l’utilisateur est redirigé vers un dashboard.php page.

Sécurisation de votre système de connexion

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

  • Utilisez HTTPS pour chiffrer 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 séparé 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.






Source link