L'objectif ici est :
Les données sont passées dans le corps de la requête HTTP, c'est à dire à l'intérieur de la requête envoyée vers la page.
Avec cette solution :
Il s'agit ici d'entrer des données dans un formulaire et de les afficher dans une deuxième page. Tester l'exemple suivant.
Fichier index.html :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>Entrez les dimensions d'un rectangle :</p> <form method="post" action="resultat.php"> <p>Longueur = <input type="text" name="longueur"> m</p> <p>Largeur = <input type="text" name="largeur"> m</p> <input type="submit" value="VALIDER"> </form> </body> </html>
Fichier resultat.php :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <?php $long=$_POST['longueur']; $larg=$_POST['largeur']; echo "La longueur du rectangle est : "; echo $long; echo "<br>Sa largeur est : "; echo $larg; ?> <a href="index.html">Recommencer</a> </body> </html>
Cette fois, les données subissent un traitement avant d'afficher la deuxième page. Seul le fichier resultat.php est modifié. Tester l'exemple suivant.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <?php $long=$_POST['longueur']; $larg=$_POST['largeur']; $aire=$long*$larg; $perimetre=$long*2+$larg*2; echo "<p>L'aire du rectangle est: "; echo $aire; echo " m<sup>2</sup></p>"; echo "<p>Son périmètre est: "; echo $perimetre; echo " m</p>"; ?> <a href="index.html">Recommencer</a> </body> </html>
Maintenant, avant d'envoyer les données au serveur, on vérifie qu'elles sont correctes. Seul le fichier index.html est modifié. Naturellement, l'option JavaScript du navigateur doit être activée. Tester l'exemple suivant.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function verifier() { L=document.f.longueur.value; l=document.f.largeur.value; L=L*1; l=l*1; if (l>L) alert("La longueur est inférieure à la largeur!"); else document.f.submit(); } </script> </head> <body> <p>Entrez les dimensions d'un rectangle :</p> <form name="f" method="post" action="resultat.php"> <p>Longueur = <input type="text" name="longueur"> m</p> <p>Largeur = <input type="text" name="largeur"> m</p> <input type="button" value="VALIDER" onclick="verifier();"> </form> </body> </html>
Le HTML5 offre quelques solutions pour vérifier qu'un formulaire est correctement rempli. Ci-dessous, l'attribut "required" indique que le champ de saisie doit être complété avant d'envoyer le formulaire.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>Entrez les dimensions d'un rectangle :</p> <form method="post" action="resultat.php"> <p>Longueur = <input type="text" name="longueur" required> m</p> <p>Largeur = <input type="text" name="largeur" required> m</p> <input type="submit" value="VALIDER"> </form> </body> </html>
Cette méthode permet de transmettre des données par le biais de l'URL.
Avec cette solution :
Dans cet exemple, il s'agit de transmettre au serveur le numéro d'un pion et sa couleur. Tester l'exemple suivant.
Fichier index.html :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p><a href="resultat.php?pion=1&couleur=verte"> Pion n<sup>o</sup>1 de couleur verte.</a></p> <p><a href="resultat.php?pion=1&couleur=rouge"> Pion n<sup>o</sup>1 de couleur rouge.</a></p> <p><a href="resultat.php?pion=2&couleur=verte"> Pion n<sup>o</sup>2 de couleur verte.</a></p> <p><a href="resultat.php?pion=2&couleur=rouge"> Pion n<sup>o</sup>2 de couleur rouge.</a></p> </body> </html>
Fichier resultat.php :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <?php $pion=$_GET['pion']; $coul=$_GET['couleur']; echo "Vous avez choisi le pion n<sup>o</sup> "; echo $pion; echo " de couleur "; echo $coul; ?> </body> </html>
Il est possible de vérifier, avec la fonction "isset()", que les données ont été correctement transmises. Pour l'exemple précédent, cette vérification peut se traduire par le code ci-dessous.
if isset($_GET['pion']) $pion=$_GET['pion']; else echo "Numéro du pion non reçu."; if isset($_GET['couleur']) $coul=$_GET['couleur']; else echo "Couleur du pion non reçue.";
Cette variable est un tableau associatif qui contient par défaut le contenu des variables $_GET, $_POST et $_COOKIE. Bien que pratique à utiliser, elle ne contrôle pas la provenance des données...
Il est possible d'écrire :
$valeur=$_REQUEST['ma_valeur']
A la place de :
$valeur=$_GET['ma_valeur']
Ou :
$valeur=$_POST['ma_valeur']
Cette solution sera étudiée par la suite. Le grand avantage est que la page n'a pas besoin d'être rechargée pour afficher les résultats. Par contre, l'option JavaScript du navigateur doit nécessairement être activée.
L'idée est d'obtenir une application pouvant fonctionner sans JavaScript, tout en profitant des possibilités de celui-ci s'il est activé, ce qui est le plus souvent le cas.
On commence par créer un formulaire fonctionnant sans JavaScript, classiquement avec la méthode POST. On ajoute du comportement dessus avec JavaScript, qui prend la main sur l'événement submit et le remplace par un appel Ajax.
Après avoir conçu l'application, on ajoute du code pour qu'elle fonctionne également dans les environnements dégradés, sans JavaScript pour une raison ou pour une autre (sécurité, accessibilité, matériel ancien, système embarqué...).
<script src="/application.js"></script> <noscript> <form method="post" action="resultat.php"> ... </form> </noscript>
Les solides de Platon, au nombre de cinq, sont les seuls polyèdres réguliers.
Polyèdre | Tétraèdre | Cube | Octaèdre | Dodécaèdre | Isocaèdre | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Volume |
| a3 |
|
|
| ||||||||
Image |
Créer une application web :
Le calcul du volume devra être effectué par le serveur. Les données pourront être transmises au serveur par les méthodes GET ou POST, au choix.