0% ont trouvé ce document utile (0 vote)
7 vues4 pages

Insertion d'utilisateurs avec PDO en PHP

Le document décrit le processus de création d'une base de données MySQL et d'un formulaire HTML pour insérer des utilisateurs. Il inclut des scripts PHP pour la connexion à la base de données avec PDO, la récupération et la validation des données du formulaire, ainsi que l'insertion sécurisée des données. Une page de confirmation est également fournie pour indiquer le succès de l'ajout d'un utilisateur.

Transféré par

guehikipre372
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues4 pages

Insertion d'utilisateurs avec PDO en PHP

Le document décrit le processus de création d'une base de données MySQL et d'un formulaire HTML pour insérer des utilisateurs. Il inclut des scripts PHP pour la connexion à la base de données avec PDO, la récupération et la validation des données du formulaire, ainsi que l'insertion sécurisée des données. Une page de confirmation est également fournie pour indiquer le succès de l'ajout d'un utilisateur.

Transféré par

guehikipre372
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

1. Création de la base de données et de la


table
Avant d'écrire le code PHP, créons une base de données et une table pour stocker les données.

Exécute cette requête SQL dans MySQL :


CREATE DATABASE test_db;
USE test_db;

CREATE TABLE utilisateurs (


id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);

2. Formulaire HTML pour saisir les données


Ce formulaire permet à l'utilisateur d'entrer un nom et un email.

Code du formulaire ([Link])

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Insertion de données avec PDO</title>
</head>
<body>
<h2>Ajouter un utilisateur</h2>
<form action="[Link]" method="post">
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" required>
<br><br>

<label for="email">Email :</label>


<input type="email" name="email" id="email" required>
<br><br>

<button type="submit">Ajouter</button>
</form>
</body>
</html>
3. Traitement du formulaire et insertion
dans MySQL avec PDO
Ce script récupère les données du formulaire et les insère dans la base de données.

Code PHP pour l'insertion ([Link])


<?php
// Informations de connexion à la base de données
$host = 'localhost';
$dbname = 'test_db';
$username = 'root';
$password = '';

try {
// Connexion à la base de données avec PDO
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username,
$password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Vérifier si les données ont été soumises via POST


if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Récupération des données du formulaire
$nom = trim($_POST['nom']);
$email = trim($_POST['email']);

// Vérification si les champs ne sont pas vides


if (!empty($nom) && !empty($email)) {
// Préparer la requête SQL avec des paramètres pour éviter les injections SQL
$sql = "INSERT INTO utilisateurs (nom, email) VALUES (:nom, :email)";
$stmt = $pdo->prepare($sql);

// Exécuter la requête avec les valeurs


$stmt->execute([
':nom' => $nom,
':email' => $email
]);

// Redirection après l'insertion


header("Location: [Link]");
exit();
} else {
echo "Veuillez remplir tous les champs.";
}
}
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage();
}
?>
Explication du code :

1. Définition des paramètres de connexion


o $host : Adresse du serveur MySQL (généralement localhost en
local).
o $dbname : Nom de la base de données à laquelle se
connecter.
o $username : Nom d'utilisateur de MySQL (root en local par
défaut).
o $password : Mot de passe MySQL (souvent vide '' en local).
2. Connexion avec PDO
o new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username,
$password)
→ Cette ligne établit la connexion à MySQL.
o charset=utf8 : Assure que les données sont bien encodées en
UTF-8.
3. Activation du mode exception
o $pdo->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
→ Permet d'afficher les erreurs SQL sous forme
d'exceptions pour un meilleur débogage.
4. Gestion des erreurs avec try ... catch
o Si la connexion échoue, une exception est levée et le
message d'erreur s'affiche grâce à $e->getMessage().

4. Page de confirmation ([Link])

Une fois les données insérées, on affiche un message de succès.

Code ([Link])
php
CopierModifier
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Succès</title>
</head>
<body>
<h2>Utilisateur ajouté avec succès !</h2>
<a href="[Link]">Retour au formulaire</a>
</body>
</html>

5. Explication du code

✅ Connexion à la base de données avec PDO

$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8",


$username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 Se connecte à MySQL via PDO.


 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
affiche les erreurs SQL.

récupération et validation des données du formulaire


$nom = trim($_POST['nom']);
$email = trim($_POST['email']);

 trim()supprime les espaces inutiles.


 On vérifie que les champs ne sont pas vides.

✅ Préparation et exécution sécurisée de la requête


php
CopierModifier
$sql = "INSERT INTO utilisateurs (nom, email) VALUES
(:nom, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([':nom' => $nom, ':email' => $email]);

Vous aimerez peut-être aussi