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.php
ce 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.php
ce 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