<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Soultana Hanane16</title>
    <description>The latest articles on DEV Community by Soultana Hanane16 (@soultana_hanane16_5834871).</description>
    <link>https://dev.to/soultana_hanane16_5834871</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3892082%2F5e1fe073-18dd-47d2-849e-71c76a64f8b0.png</url>
      <title>DEV Community: Soultana Hanane16</title>
      <link>https://dev.to/soultana_hanane16_5834871</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/soultana_hanane16_5834871"/>
    <language>en</language>
    <item>
      <title>Comment créer un Système d’Authentification Sécurisé avec PHP &amp; PDO</title>
      <dc:creator>Soultana Hanane16</dc:creator>
      <pubDate>Thu, 23 Apr 2026 20:02:54 +0000</pubDate>
      <link>https://dev.to/soultana_hanane16_5834871/comment-creer-un-systeme-dauthentification-securise-avec-php-pdo-3g92</link>
      <guid>https://dev.to/soultana_hanane16_5834871/comment-creer-un-systeme-dauthentification-securise-avec-php-pdo-3g92</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
Dans ce tutoriel, nous allons voir comment mettre en place un système de connexion (Login) et d'inscription (Signup) robuste en utilisant PHP 8, l'extension PDO pour la sécurité des données, et MySQL pour le stockage.&lt;/p&gt;

&lt;p&gt;Étape 1 : La Base de Données (MySQL)&lt;br&gt;
Avant tout, nous devons créer une table pour stocker nos utilisateurs. Voici le script SQL :&lt;/p&gt;

&lt;p&gt;SQL&lt;br&gt;
CREATE TABLE users (&lt;br&gt;
    id INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;
    fullname VARCHAR(100) NOT NULL,&lt;br&gt;
    email VARCHAR(100) UNIQUE NOT NULL,&lt;br&gt;
    password VARCHAR(255) NOT NULL&lt;br&gt;
);&lt;br&gt;
Étape 2 : Connexion via PDO (config.php)&lt;br&gt;
Pour communiquer avec MySQL en toute sécurité, on utilise PDO :&lt;/p&gt;

&lt;p&gt;PHP&lt;br&gt;
&amp;lt;?php&lt;br&gt;
try {&lt;br&gt;
    $pdo = new PDO("mysql:host=localhost;dbname=lumina_db;charset=utf8", "root", "");&lt;br&gt;
    $pdo-&amp;gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);&lt;br&gt;
} catch (PDOException $e) {&lt;br&gt;
    die("Erreur de connexion : " . $e-&amp;gt;getMessage());&lt;br&gt;
}&lt;br&gt;
?&amp;gt;&lt;br&gt;
Étape 3 : Inscription avec Hachage (register.php)&lt;br&gt;
Important : On ne stocke jamais les mots de passe en clair ! On utilise password_hash.&lt;/p&gt;

&lt;p&gt;PHP&lt;br&gt;
&amp;lt;?php&lt;br&gt;
require_once 'config.php';&lt;br&gt;
// ... récupération des données POST&lt;br&gt;
$hashed_password = password_hash($password, PASSWORD_DEFAULT);&lt;br&gt;
$sql = "INSERT INTO users (fullname, email, password) VALUES (?, ?, ?)";&lt;br&gt;
$stmt = $pdo-&amp;gt;prepare($sql);&lt;br&gt;
$stmt-&amp;gt;execute([$fullname, $email, $hashed_password]);&lt;br&gt;
echo "Inscription réussie !";&lt;br&gt;
?&amp;gt;&lt;br&gt;
Étape 4 : Connexion et Vérification (login.php)&lt;br&gt;
Pour vérifier l'utilisateur, on utilise password_verify :&lt;/p&gt;

&lt;p&gt;PHP&lt;br&gt;
&amp;lt;?php&lt;br&gt;
// ... après récupération de l'utilisateur en DB&lt;br&gt;
if ($user &amp;amp;&amp;amp; password_verify($password, $user['password'])) {&lt;br&gt;
    session_start();&lt;br&gt;
    $_SESSION['user_id'] = $user['id'];&lt;br&gt;
    echo "Bienvenue !";&lt;br&gt;
} else {&lt;br&gt;
    echo "Identifiants incorrects.";&lt;br&gt;
}&lt;br&gt;
?&amp;gt;&lt;br&gt;
Conclusion&lt;br&gt;
Ce projet montre l'importance de l'utilisation des requêtes préparées pour éviter les injections SQL et du hachage pour protéger les données sensibles.&lt;/p&gt;

&lt;p&gt;Retrouvez le code complet sur mon GitHub : &lt;br&gt;
&lt;a href="https://github.com/soultanah135-commits/Systeme-Authentification-Lumina.git" rel="noopener noreferrer"&gt;https://github.com/soultanah135-commits/Systeme-Authentification-Lumina.git&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>security</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
