Vote utilisateur: 4 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles inactives
 

NSI - Numérique et Sciences Informatiques


HTML (HyperText Markup Language) ,
PHP Hypertext Preprocessor
et Interation Client-Serveur :
Exercices et applications


Prérequis au TD

  1. Il faut impérativement avoir un environnement de travail PHP, c'est à dire un site Web ou un serveur installé sur votre ordinateur pour effectuer ce TD.
    Consulter si ce n'est pas le cas la page : PHP et Interation Client-Serveur : installation.

  2. Il est par ailleurs nécessaire d'avoir traité le TD sur le Javascript : HTML (HyperText Markup Language) et Javascript

 

1. Programmer en PHP

Quelques remarques sur les fonctions, les structures conditionnels en PHP

    • Les fonctions en PHP fonctionnent comme en Javascript. Le mot clé function permet de définir une fonction.
    • Les paramètres sont écrits entre parenthèses précédés du symbole $ comme toute les variables.
    • Le mot clé return permet de renvoyer une valeur.
    • Il existe de nombreuses fonctions intégrées en PHP vous pouvez consulter ces sites de références au fur et à mesure des besoins.
    • De même les structures conditionnelles if et if else fonctionnent comment en Javascript.
       
    • Par exemple cette fonction renvoie le maximum des deux nombres
<?php
  function maximum($a,$b)
{
if ($a>$b)
    return $a;
else 
    return $b;
}
?>
  

 

  • De même les structures itératives, les boucles for et while fonctionnent comment en Javascript.

Un exemple

L'exemple ci-dessous se sert d'une boucle for pour afficher un tableau à l'écran avec une boucles for et une boucle while . C'est magique.

<head>
  <title>
   PHP - Exemple 2
  </title>
  <meta charset="utf-8"/>
 </head>
 <body>
 <h1> PHP - Exemple 2 </h1>
 <table border="1">
  <tr>
   <?php
   for($i=1;$i<=10;$i=$i+1) // ou ($i=1;$i<=10;$i++)
   {
    echo "<td>$i</td>";
   }
   ?>
  </tr>
 </table>
 
 <p> </p>
 
 <table border="2">
  <tr>
   <?php
   $i = 1;
   while ($i <= 10) 
   {
    echo "<td>$i</td>";
	$i=$i+1;
	}
   ?>
  </tr>
 </table>
 
</body>
</html>

 

Exercice 1
La fonction rand(a,b) renvoie un entier aléatoire compris entre a et b.
1. Ecrire un script qui choisit aléatoirement un nombre entre 1 et 15.
2. Et qui affiche le table de multiplication de ce nombre dans un tableau.
Toute amélioration est la bienvenue.

 

Exercice 2
La fonction rand(a,b) renvoie un entier aléatoire compris entre a et b.
Ecrire un script en php qui :
1. choisit 100 nombres aléatoires entre 0 et 100 ;
2. les affiche  ;
3. et affiche leur moyenne.
Toute amélioration est la bienvenue.

 

2. Interagir avec une page en PHP : les méthodes GET et POST

Un script PHP s'exécute sur le serveur lorsque l'utilisateur accède à un fichier par un lien. Ce script effectue un certain nombre d'instructions pour produire la page web demandée et s'arrête lorsque celle-ci est produite.
Comment faisons-nous pour passer une information d'une page à l'autre ? De l'utilisateur à la page .PHP ?

Par exemple, si je saisi mon compte utilisateur sur un site et qu'en cliquant je suis conduis vers la page de mon compte, comment cette page se souvient-elle du nom que j'ai écrit dans la page précédente ?

Il existe plusieurs solutions pour transmettre des informations d'une page aux autres :

  • Cookies ;
  • base de données ;
  • fichiers textes ;
  • la méthode  GET ;
  • la méthode POST.

Nous allons étudier les méthodes GET et POST.

 

2a. La méthode GET
Interagir avec une page en PHP avec la méthode GET

 

Les variables ne transitent pas toujours via un formulaire mais bien souvent par l'URL via la méthode GET.

L'URL (Uniform Resource Locator) sert à représenter une adresse sur le web comme celle du site www.math93.com.

Par exemple, après avoir fait une recherche sur Google, par exemple avec math93, la barre d'adresse contient une URL longue qui ressemble à ceci :

recherche google

Dans cet exemple, les informations après le point d'interrogation sont des données que l'on fait transiter d'une page à une autre.

2a1. Former une URL pour envoyer des paramètres

Imaginons que votre site s'appelle math93.com et que vous avez une page PHP intitulée bonjour.php. Pour accéder à cette page, vous devez aller à l'URL suivante :

http://www.math93.com/bonjour.php

Pour envoyer des informations à la page bonjour.php, on va ajouter des informations à la fin de l'URL, comme ceci :

php adresse get

  • On écrit les variables et les valeurs des variables après un point d'intérogation ? .
  • On sépare les variables par le symbole & .
  • La seule limite est la longueur de l'URL. En général il n'est pas conseillé de dépasser les 256 caractères.

 

2a2. Récupérer les valeurs des variables

Nous avons fait un lien vers le fichier php bonjour.php et à deux variables nom et prenom.

bonjour.php?nom=Galois&prenom=Evariste

Pour récupérer les valeurs des variables, on y accède via la variable $_GET.

  • $_GET['nom'] .     à la valeur Galois ;  
  • $_GET['prenom'] .  à la valeur Evariste ;

 

Par exemple on a ici avec le petit code en écrivant dant la console :

Essayer de changer les noms et prénoms dans l'adresse URL.

 

<head>
  <title>
   PHP - Exemple 3
  </title>
  <meta charset="utf-8"/>
 </head>
 <body>
 <h1> PHP - Exemple 3 </h1>
 <?php 
 // les variables existent-t-elles ?
 if(isset($_GET['nom']) and isset($_GET['prenom']))
 {// oui les variables existent 
    $lenom=$_GET['nom'];
    $leprenom=$_GET['prenom'];
    //echo "<p>Bonjour $_GET['prenom'] et $_GET['nom'] !</p>" ;
    echo "<p>Bonjour $leprenom   $lenom</p>" ;
 }
 else
 {
    echo "<p>Bonjour Madame ou Monsieur.</p>" ;
 }
 ?> 
</body>
</html>

 

  • Remarqueisset(var)   - Détermine si la variable var est déclarée et est différente de NULL.

 

Exercice 3
1. Ecrire une page qui prend deux nombres dans l'URL et affiche leur somme.
2. Modifier la page pour donner trois paramètres dans l'URL, deux nombres et une opération. Le résultat de l'opération sera affiché dans la page.
Toute amélioration est la bienvenue.

 

Exercice 4
1. Ecrire deux pages, la première choisissant un nombre au hasard entre -10 et 10
2. et contenant un lien vers la seconde qui affichera la racine carrée du nombre choisi, si cela est possible.
Toute amélioration est la bienvenue.

 

2a. La méthode POST
Interagir avec une page en PHP avec la méthode POST

Il existe une autre méthode pour passer des données d'une page à l'autre sans mentionner les valeurs dans l'URL.

Il s'agit de la méthode utilisée dans les formulaires

Un exemple

Reprenons l'exemple 3 avec le nom et le prénom.

  1. On va donc écrire deux pages, la première une page HTML que l'on va nommer ex4-HTML.html, et la deuxième une page PHP l'on va nommer ex4-PHP.php
  2. Afin de pouvoir accéder aux contenus envoyés par la méthode POST, il faut donner à chaque élément dont on veut récuperer les valeurs l'attribut name   .
  3. Pour récupérer les valeurs des variables, on y accède via la variable $_POST.
  • $_POST['nom'] .     à la valeur du nom entré ;   
  • $_POST['prenom'] .  à la valeur du prénom entré ;

 

<!doctype html>
<html>
<head>
  <title>
   PHP - Exemple 4 - Méthode POST Fichier HTML
  </title>
  <meta charset="utf-8"/>
 </head>
 <body>
 <h1> PHP - Exemple 4 - Méthode POST Fichier HTML</h1>
  <form action="ex4-PHP.php" method="post">
  <label for="nom">Votre Nom :</label>  
  <input type="text" name="nom"> 
  <div> et </div> 
  <label for="prenom">Votre Prénom :</label>
  <input type="text" name="prenom">
  <input type="submit" value="Valider">
  </form>
</body>
</html>

 

<!doctype html>
<html>
<head>
  <title>
   PHP - Exemple 4 - Méthode POST Fichier PHP
  </title>
  <meta charset="utf-8"/>
 </head>
 <body>
 <h1> PHP - Exemple 4 - Méthode POST Fichier PHP </h1>
 <?php 
 // les variables existent-t-elles ?
 if(isset($_POST['nom']) and isset($_POST['prenom']))
 {// oui les variables existent 
    $lenom=$_POST['nom'];
    $leprenom=$_POST['prenom'];
    //echo "<p>Bonjour $_POST['prenom']   et $_POST['nom'] !</p>" ;
    echo "<p>Bonjour $leprenom    $lenom</p>" ;
 }
 else
 {
	echo "<p>Bonjour Madame ou Monsieur.</p>" ;
 }
 ?> 
</body>

 

 

Exercice 5
Reprendre les exercices 3 et 4 mais en utilisant la méthode POST et un formulaire.
Toute amélioration est la bienvenue.

 

Exercice 6 : un QCM
1. Ecrire deux pages, la première contenant un QCM avec au moins trois questions.
2. Les réponses seront proposées et l'utilisateur devra faire son choix par des cases à cocher.
3. La seconde page affichera le score obtenu.
Aide : Pour récupérer l'information "case cochée, c'est assez simple : la variable n'existe dans le post que si la case a été cochée.
Toute amélioration est la bienvenue.

Aide :

 

Articles Connexes