• Aucun résultat trouvé

LES FORMULAIRES EN PHP

N/A
N/A
Protected

Academic year: 2022

Partager "LES FORMULAIRES EN PHP"

Copied!
6
0
0

Texte intégral

(1)

LES FORMULAIRES EN PHP

1. Code de base d'un formulaire...2

2. Les différents contrôles...2

3. Exemple de formulaire...2

4. Traitement du formulaire...3

4.1 Comment accéder aux valeurs qui ont été saisies dans le fomulaire ?...3

4.2 Exemple d'exploitation des valeurs saisies dans le formulaire...4

5. Sécurité...4

5.1 Première modification...5

5.2 Deuxième modification...5

6. Mini-projet...5

6.1 Articles connexes...6

Les formulaires permettent à l'utilisateur d'envoyer des données vers le serveur.

Le formulaire est introduit par la balise HTML <form>.

1Tiré du site de S. Dumoulin : http://stssnsb.free.fr/logo_sd.jpg 1/6

(2)

1. Code de base d'un formulaire

<form method="post" action="traitement.php">

<!-- On place ici les différents contrôles du formulaire -->

</form>

• L'atribut "method" : ici j'ai utilisé POST, on peut également utiliser GET.

• GET est la méthode par défaut, il ne faut pas l'utiliser si le formulaire contient d'informations sensibles car elles apparaissent en clair dand l'URL.

En outre la méthode GET ne permet pas l'upload de fichiers.

• POST permet d'uploader des fichiers et offre une meilleur sécurité car les informations n'apparaissent pas dans l'URL.

• L'atribut "action" : il contient le nom du script php qui sera appelé lorsque le formulaire sera validé par l'utilisateur.

2. Les différents contrôles

La liste ci-dessous n'est pas exhaustive.

Texte <input type="text" />

Bouton radio <input type="radio" name="etat" value="on" checked/>

Case à cocher <input type="checkbox" name="accept" id="accept"

checked="checked" />

Bouton <input type="submit" value="Submit" />

Liste

déroulante <select name="section">...</select>

Slider <input name="slider" type="range" min="0" max="20" step="1"

value="5" />

Zone de texte <textarea name="memo" rows="5" cols="30">Contenu dans la zonede texte</textarea>

Pour chaque contrôle, l'atribut "name" servira de nom de variable dans le script php qui traitera les informations. Il faut donc que ces noms soient uniques.

3. Exemple de formulaire

<!DOCTYPE html>

<html>

<head>

(3)

<title>Test méthode POST</title>

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

</head>

<body> <!-- Corps de la page -->

<form action="formulaire.php" method="POST"> <!-- Début du formulaire -->

<!-- Liste déroulante -->

<select name="titre">

<option>Mlle</option><option selected>Mme</option><option>M.</option>

</select>

<!-- Zones de texte -->

<label for="nom"> Nom : </label><input type="text" name="nom" id="nom"

placeholder="Entrez votre nom" /><br/><br/>

<label for="prenom">Prénom : </label><input type="text" name="prenom" id="prenom"

value="Prénom par défaut" /><br/><br/>

<!-- Bouton radio -->

<label for="sexe">Sexe : </label>

<input type="radio" name="sexe" id="sexe" value="H" checked /> Masculin

<input type="radio" name="sexe" value="F" /> Féminin

<br/><br/>

<!-- Slider -->

<label for="age">Age : 1 </label>

<input type="range" name="age" id="age" min="1" max="99" step="1" value="18" />

99

<br/><br/>

<!-- Case à cocher -->

<input type="checkbox" name="bDebutant" checked="checked" /> Je débute en PHP<br/><br/>

<!-- Bouton -->

<input type="submit" name="btOK" value="OK">

</form> <!-- Fin du formulaire -->

</body>

</html>

Le code ci-dessus affiche le formulaire mais ne fait aucun traitement.

4. Traitement du formulaire

4.1 Comment accéder aux valeurs qui ont été saisies dans le fomulaire ?

Nous allons dans un premier temps simplement afficher les informations reçues par le script php lorsque l'utilisateur valide le formulaire. Ces informations sont contenues dans la variable php $_POST ($_GET si votre formulaire utilise la méthode GET).

Créer un fichier php appelé formulaire.php et y copier le code ci-dessus.

Ajouter le code ci-dessous au tout début du fichier (avant <!DOCTYPE...>)

<?php

if($_POST) {

echo 'Contenu de la variable $_POST : >';

(4)

print_r($_POST);

}

?>

En exécutant notre scrip, on remarque que la variable $_POST est un tableau associatif.

L'attribut name de chaque contrôle du formulaire est utilisé comme clé associée à la valeur saisie dans le formulaire.

On accède par exemple au nom qui a été tapé en écrivant : $_POST['nom']

4.2 Exemple d'exploitation des valeurs saisies dans le formulaire

Modifier le code php du fichier précédent comme indiqué ci-dessous :

if($_POST) {

if($_POST['nom']!='') {

echo "<br/><br/>Bonjour " . $_POST['titre'] . " " . $_POST['nom'] . "!<br/>";

echo "Je peux vous appeler " . $_POST['prenom'] . "<br/><br/>";

if(isset($_POST['bDebutant'])) {

echo "C'est une bonne idée de commencer à apprendre à programmer en PHP !

<br/><br/>";

} else {

if($_POST['sexe']=='H') {

$mot = "débutant";

} else {

$mot = "débutante";

}

echo "Comme vous n'êtes pas " . $mot . " vous pouvez passer directement au mini- projet !<br/><br/>";

} } }

La fonction isset() permet de tester si une variable existe et est différente de NULL.

5. Sécurité

Le code ci-dessus a le gros défaut de "faire confiance" à l'utilisateur en ne vérifiant pas les informations reçues. En effet, un utilisateur mal intentionné peut par exemple à la place de son nom mettre du code HTML ou Javascript ce qui représente une faille de sécurité très importante.

Taper par exemple : <script> alert('Site Hacké !!!'); </script> à la place de votre nom et valider le formulaire.

(5)

Il faut donc systématiquement supprimer ou "échapper" les éventuelles balises que l'utilisateur aurait pu envoyer. Pour cela le langage php met à notre disposition 2 fonctions :

• htmlspecialchars() : Convertit les caractères spéciaux en entités HTML (par exemple "<" (inférieur à) devient "&lt;")

• strip_tags() : Supprime les balises HTML et PHP d'une chaîne

5.1 Première modification

Sécuriser le fomulaire en utilisant la fonction strip_tags() pour tous les champs utilisés.

Insérer une copie d'écran de votre code PHP dans votre rapport.

5.2 Deuxième modification

Dans l'état actuel, lorsque un utilisateur valide le formulaire, les informations qu'il a rentré dans les différents contrôles ne sont pas conservées (par exemple si il a décoché la case "Je débute en PHP" celle-ci est de nouveau cochée une fois le fomulaire validé).

Faire en sorte que les informations saisies soit conservées dans le formulaire une fois que celui-ci a été validé.

Exemple pour le champ "prenom" :

...

<input type="text" name="prenom" value="<?php if($_POST) echo strip_tags($_POST['prenom']); ?>" /><br/><br/>

...

On peut traduire le code php inséré à la place de la valeur de l'attribut "value" par : Si la variable $_POST existe alors afficher le prénom entré par l'utilisateur (sécurisé par strip_tags).

Insérer une copie d'écran de votre code PHP dans votre rapport.

6. Mini-projet

Créer un site internet en php composé de 3 pages :

• Une page d'accueil (page principale) offrant des liens vers les 2 autres.

• Une page avec un formulaire où l'utilisateur peut entre un nombre entier. Ce nombre sera convertit en chiffre Romain lorsqu'il validera le formulaire (réutiliser le code du premier TP sur PHP). Il sera possible de revenir à la d'accueil depuis cette page.

(6)

• Une page avec un formulaire où l'utilisateur peut entrer 3 nombres entiers compris entre 0 et 255 (utiliser des listes déroulantes <SELECT>). Ces 3 nombres correspondant aux composantes RVB (Rouge, Verte et Bleue) on affichera un rectangle de la couleur correspondante lorsque l'utilisateur validera le formulaire (réutiliser le code du premier TP sur PHP). Il sera possible de revenir à la d'accueil depuis cette page.

Le code HTML de chaque page généré par votre code PHP devra être valide (valider votre code HTML sur le site w3.org)

Insérer une capture d'écran de la validation dans votre rapport.

6.1 Articles connexes

Premiers pas en HTML

Premiers pas en PHP

Premiers pas en CSS

Accéder à une base Access (.mdb) en PHP

Références

Documents relatifs

Défavorable au projet , comporte neuf thèmes différents Certains de ces thèmes sont spécifiques au dossier , d’autres plus généraux : potentiel éolien , d’ordre

mais, inopinément, Georgina était survenue ou avait appelé Mathurine, ou bien encore le vieux Fanche était apparu aux alentours, et Alix se

La programmation sur ordinateur ou calculatrice programmable d’une grille autoréférente est très simple mais elle enlève tout le plaisir de la recherche manuelle. Elle a pour

La programmation sur ordinateur ou calculatrice programmable d’une grille autoréférente est très simple mais elle enlève tout le plaisir de la recherche manuelle. Elle a pour

C’est en fonction du contexte (l’ensemble des mots qui l’accompagnent) que l’on peut identifier le sens dans lequel il est employé.. Exemple : Cet explorateur a parcouru

C’est en fonction du contexte (l’ensemble des mots qui l’accompagnent) que l’on peut identifier le sens dans lequel il est employé.. Exemple : Cet explorateur a parcouru la terre

 Par valeur , c'est a dire que s'ils ont une valeur à l'extérieur de la fonction, seule la valeur est transmise à la fonction, si la variable subit des modifications à

• Si vous avez fait une deuxième version de formulaire, faites un deuxième script pour traiter les checkbox. • Réfléchissez à une solution générique pour générer