Menu principal Logiciel Wamp PHP Exercices

Retour au menu

Exercices sur le PHP

Exercice 1 :

Dans votre dossier dans « www » créez un dossier « Exercices ». Dans ce dossier, créer un fichier « exo1.php ».

Ecrire le code suivant dans ce fichier :

<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> </head> <body> <h1>Cours sur le PHP</h1> <?php // Cette liste contient des "dictionnaire" $ma_liste = [ array("titre" => "Partie 1 – Cours", "paragraphe" => "Le PHP est un langage traité par un serveur Web", "numero" => 9), array("titre" => "Partie 1.1 – Logiciel", "paragraphe" => "Pour exécuter du PHP, on utilise le logiciel Wamp.", "numero" => 4), array("titre" => "Partie 1.2 – Langage", "paragraphe" => "Vous allez faire quelques exercices en PHP !", "numero" => 2), array("titre" => "Partie 2 – Projet", "paragraphe" => "Traiter les résultats du formulaire avec du PHP.", "numero" => 7) ]; // La boucle parcours chaque élément de la liste (ici des dictionnaires) foreach($ma_liste as $elm){ // Si la valeur "numero" dans le dictionnaire est supérieure à 5, // on fait un affichage, sinon on en fait un autre. if($elm["numero"] > 5 ){ echo "<h2>". $elm["titre"] ."</h2>"; echo "<p>". $elm["paragraphe"] ."</p>"; }else{ echo "<h3>". $elm["titre"] ."</h3>"; echo "<p>". $elm["paragraphe"] ."</p>"; } } ?> </body> </html>

Dans un navigateur, écrivez l’URL localhost/Jean_Dupon/Exercices/exo1.php pour afficher la page.

  1. Qu’affiche cette page ?
  2. Modifiez le code pour que le numéro stocké dans chaque dictionnaire soit affiché également affiché.



Exercice 2 :

Nous avons vu que la méthode GET mettait des données dans l’URL. Voyons comment les récupérer pour les traiter avec du PHP.

Dans le dossier « Exercices », créer un fichier « exo2.php ». Dans ce fichier, copiez le code suivant :

<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> </head> <body> <?php // la fonction isset(...) vérifie si un cle existe dans un dictionnaire // (ici la clé "nom" dans le dictionnaire $_GET) if( isset($_GET["nom"]) ){ ?> <h1>Bienvenue <?php echo $_GET["nom"]; ?> ! </h1> <?php if( isset($_GET["age"]) ){ ?> <p>Vous êtes agés de <?php echo $_GET["age"] ; ?> </p> <?php } if( isset($_GET["nationalite"]) ){ ?> <p>Vous être <?php echo $_GET["nationalite"] ; ?> </p> <?php } }else{ ?> <p>Il faut obligatoirement entrer votre nom !</p> <?php } ?> </body> </html>

Tester la page avec les URLs suivantes :


Question 1 : Quelle variable stocke les données de l'URL ?

Question 2 : Qu'affiche la page pour chacune des URL ?

Question 3 : Ajouter le code suivant avant la baliser fermante body et effectuer les manipulations de l’exercice précédent. Observer ce qu'il se passe

<?php var_dump($_GET) ; ?>

Question 4 : Quelles lignes de code doit-on ajouter pour que l'on puisse afficher la taille d'Ashley ?


Exercice 3 :

La méthode POST fonctionne de la même manière. On ne peut la tester qu’avec un formulaire puisqu’elle n’affiche pas de données dans l’URL.

Dans le dossier « Exercices », créer un fichier « exo3.html » et un fichier « exo3_resultat.php ».


Dans le fichier « exo3.html » copier le code suivant :

<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> </head> <body> <form method="POST" action="exo3_resultat.php"> <p> <label for="id_nom">Votre nom : </label> <input id="id_nom" name="nom" type="text" /> </p> <p> <label for="id_prenom">Votre prénom : </label> <input id="id_prenom" name="prenom" type="text" /> </p> <p> <label for="id_n1">Note 1 : </label> <input id="id_n1" name="note_1" type="number" /> </p> <p> <label for="id_n2">Note 2 : </label> <input id="id_n2" name="note_2" type="number" /> </p> <p> <input name="validation" type="submit" value="Valider" /> </p> </form> </body> </html>

Dans le fichier « exo3_resultat.php » copier le code suivant :

<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <?php function affichage_note($la_note, $numero){ if ($la_note> 20 || $la_note < 0){ ?> <p class="erreur"> La note n°<?php echo $numero ; ?> n’est pas valide. </p> <?php }else{ echo "<p> Note n°". $numero ." : ". $la_note ."/20 </p>"; } } ?> </head> <body> <?php if(isset($_POST["validation"])) { // Si le prénom et le nom ont été saisis if ($_POST["nom"] != "" && $_POST["prenom"] != "") { $nom = $_POST["nom"]; $prenom = $_POST["prenom"]; ?> <h1> Bienvenue <?php echo $nom." ".$prenom ; ?> </h1> <?php $nombre_notes = 0; if ($_POST["note_1"] != "") { // Utilisation de la fonction 'affichage_note' affichage_note($_POST["note_1"], 1); $nombre_notes = $nombre_notes +1; } if ($_POST["note_2"] != "") { // Utilisation de la fonction 'affichage_note' affichage_note($_POST["note_2"], 2); $nombre_notes = $nombre_notes +1; } // Si aucune note n'est entrée if ($nombre_notes == 0) { echo "<p> Vous n’avez aucune note. </p>"; } // Si il manque le nom et/ou le prénom } else { echo "<p> Vous devez remplir le <a href=\"exo3.html\">formulaire</a>.</p>"; } }else{ echo "<p> Vous devez passer par le <a href=\"exo3.html\">formulaire</a> !</p>"; } ?> </body> </html>

Rappel : La fonction var_dump() permet d'afficher une liste.


Question 1 : Quelle variable, ressemblant à $_GET stocke les données de la requête envoyé par le formulaire ?

Question 2 : Après cette variable (un dictionnaire), il y a toujours une chaîne de caractères entourée de crochets ["..."]. Où trouve-t-on ces chaînes de caractère dans le formulaire ?




Maintenant, à vous de jouer !

Après avoir réaliser votre formulaire en PHP, ajoutez du PHP pour traiter les données.

En PHP, vous devez :

  1. Comtper les points (un point par bonne réponse).
  2. Si l'utilisateur s'est trompé à une question, la réponse doit s'afficher.
  3. Si l'utilisateur a répondu juste à toutes les questions, un message de félicitations s'affiche.
  4. Si l'utilisateur a mal rempli le formulaire (il manque des réponses), un message d'erreur doit s'afficher.

Exemples :