0% ont trouvé ce document utile (0 vote)
14 vues6 pages

Validation et traitement des formulaires PHP

Cours module 3-php

Transféré par

eUser456
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues6 pages

Validation et traitement des formulaires PHP

Cours module 3-php

Transféré par

eUser456
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 PDF, TXT ou lisez en ligne sur Scribd

Module 3 : Manipulation de formulaires,

validation et gestion des erreurs en PHP

Module 3 : Manipulation de formulaires, validation et gestion des erreurs en


PHP

1. Traitement des formulaires en PHP

Les formulaires permettent d'envoyer des données à un script PHP.

Formulaire basique :

<form method="post" action="[Link]">


Nom : <input type="text" name="nom">
Email : <input type="email" name="email">
Âge : <input type="number" name="age">
<input type="submit" value="Envoyer">
</form>

Traitement des données en PHP :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
$age = $_POST["age"];

echo "Nom : $nom, Email : $email, Âge : $age";


}

2. Validation des données reçues

Validation basique des champs :

Validation de base avec empty() :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
$age = $_POST["age"];

if (empty($nom) || empty($email) || empty($age)) {


echo "Tous les champs sont requis.";
} else {
// Validation réussie
echo "Données valides : Nom : $nom, Email : $email, Âge : $age";
}
}

Validation des types de données :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
$age = $_POST["age"];

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Adresse e-mail invalide.";
} elseif (!is_numeric($age)) {
echo "Âge doit être un nombre.";
} elseif (empty($nom) || empty($email) || empty($age)) {
echo "Tous les champs sont requis.";
} else {
echo "Données valides : Nom : $nom, Email : $email, Âge : $age";
}
}

3. Gestion des erreurs et affichage des messages d'erreur

Affichage des erreurs avec les variables de session :

session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
$age = $_POST["age"];

if (empty($nom) || empty($email) || empty($age)) {


$_SESSION['error_message'] = "Tous les champs sont requis.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$_SESSION['error_message'] = "Adresse e-mail invalide.";
} elseif (!is_numeric($age)) {
$_SESSION['error_message'] = "Âge doit être un nombre.";
} else {
// Suppression de la session d'erreur
unset($_SESSION['error_message']);
echo "Données valides : Nom : $nom, Email : $email, Âge : $age";
}
}
Afficher les erreurs sur une autre page : [Link] :

session_start();
if (isset($_SESSION['error_message'])) {
echo $_SESSION['error_message'];
unset($_SESSION['error_message']);
}

4. Gestion des formulaires avec la méthode GET et POST

Méthode GET : Envoie les données via l'URL, visible dans la barre d'adresse.

<form method="get" action="[Link]">


Nom : <input type="text" name="nom">
Email : <input type="email" name="email">
<input type="submit" value="Envoyer">
</form>

if ($_SERVER["REQUEST_METHOD"] == "GET") {
$nom = $_GET["nom"];
$email = $_GET["email"];

echo "Nom : $nom, Email : $email";


}

Méthode POST : Envoie les données de manière sécurisée, non visible dans la barre d'adresse.

<form method="post" action="[Link]">


Nom : <input type="text" name="nom">
Email : <input type="email" name="email">
<input type="submit" value="Envoyer">
</form>

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];

echo "Nom : $nom, Email : $email";


}

5. Envoi de formulaires et vérification des données via PDO

Connexion à la base de données avec PDO :

$pdo = new PDO('mysql:host=localhost;dbname=mon_base', 'root', '');


$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Insertion de données dans la base de données :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];

$stmt = $pdo->prepare("INSERT INTO utilisateurs (nom, email) VALUES


(:nom, :email)");
$stmt->bindParam(':nom', $nom);
$stmt->bindParam(':email', $email);
$stmt->execute();

echo "Utilisateur ajouté avec succès.";


}

6. Gestion des fichiers uploads en PHP

Formulaire pour l'upload de fichiers :

<form method="post" enctype="multipart/form-data">


Nom : <input type="text" name="nom">
Email : <input type="email" name="email">
Fichier : <input type="file" name="fichier">
<input type="submit" value="Envoyer">
</form>

Traitement de l'upload de fichier :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
$fichier = $_FILES['fichier'];

// Validation du fichier
if ($fichier['error'] === UPLOAD_ERR_OK) {
$chemin = "uploads/" . basename($fichier['name']);
move_uploaded_file($fichier['tmp_name'], $chemin);
echo "Fichier téléchargé avec succès.";
} else {
echo "Erreur de téléchargement du fichier.";
}
}

7. Exercice pratique : Formulaire d'inscription avec validation et enregistrement


dans la base de données.
1. Formulaire d'inscription :

<form method="post" enctype="multipart/form-data">


Nom : <input type="text" name="nom" required>
Email : <input type="email" name="email" required>
Âge : <input type="number" name="age" required>
Photo : <input type="file" name="photo">
<input type="submit" value="Inscription">
</form>

2. Traitement et validation :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
session_start();

$nom = $_POST["nom"];
$email = $_POST["email"];
$age = $_POST["age"];
$photo = $_FILES['photo'];

if (empty($nom) || empty($email) || empty($age)) {


$_SESSION['error_message'] = "Tous les champs sont requis.";
header("Location: [Link]");
exit();
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$_SESSION['error_message'] = "Adresse e-mail invalide.";
header("Location: [Link]");
exit();
} elseif (!is_numeric($age)) {
$_SESSION['error_message'] = "Âge doit être un nombre.";
header("Location: [Link]");
exit();
} else {
// Connexion et insertion dans la base de données
$pdo = new PDO('mysql:host=localhost;dbname=mon_base', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$chemin = "uploads/" . basename($photo['name']);


move_uploaded_file($photo['tmp_name'], $chemin);

$stmt = $pdo->prepare("INSERT INTO utilisateurs (nom, email, age,


photo) VALUES (:nom, :email, :age, :photo)");
$stmt->bindParam(':nom', $nom);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':age', $age);
$stmt->bindParam(':photo', $chemin);
$stmt->execute();

unset($_SESSION['error_message']);
echo "Utilisateur enregistré avec succès.";
}
}

Ce module vous a montré comment gérer et valider les formulaires, traiter les erreurs et interagir avec
des bases de données via PHP. Si vous avez besoin de plus d'exemples ou d'explications, n'hésitez
pas à demander !

Vous aimerez peut-être aussi