Prog.Web
Exemples faits au TP
2016-2017


Accés au dernier TP

TP N°1 :

1. Exemple 1 :

<?php
    echo "Bonjour les gtr-istes !!!";
?>

2. Exemple 2 :

<?php
  echo "<h1 align='center'>Bonjour gtr-istes !!</h1>";
?>

3. Exemple 3 :

<?php
  $x=10;
  $y=20;
  $z= $x+$y;

  echo "<html>
        <head>
        <title>Exemple 2</title>
        </head>
        <body>
        <h3 align='center'>$z</h3>
        </body>
        </html>";
?>

TP N°2 / Passage de paramètres :

1. Formulaire de saisie de 5 valeurs :

<html>
  <head>
  <title>Exemple TP</title>
</head>

<body>
  <p>Donnez les valeurs :</p>

  <form id="form1" name="form1" method="get" action="tri.php">

  <p>Valeur 1 :
  <input name="a" type="text" id="a" value="10" size="10" maxlength="5" />
  </p>

  <p>Valeur 2 :
  <input name="b" type="text" id="b" value="45" size="10" maxlength="5" />
  </p>

  <p>Valeur 3 :
  <input name="c" type="text" id="c" value="8" size="10" maxlength="5" />
  </p>

  <p>Valeur 4:
  <input name="d" type="text" id="d" value="25" size="10" maxlength="5" />
  </p>

  <p>Valeur 5 :
  <input name="e" type="text" id="e" value="30" size="10" maxlength="5" />
  </p>

  <div align="center">
   <input type="submit" name="Submit" value="Chercher le max" />
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   <input type="reset" name="Submit2" value="Valeurs par d&eacute;faut" />
  </div>
  </form>
</body>
</html>

2. Script PHP de recherche du max en utlisant un tableau :

<?php 
   $x1= $_GET["a"];
   $x2= $_GET["b"];
   $x3= $_GET["c"];
   $x4= $_GET["d"];
   
   $tab= array($x1,$x2,$x3,$x4);
   $max= $tab[0];
   $i=1;
   while( $i <= 3)
   {
     if ($max < $tab[$i])
       $max= $tab[$i];
     $i= $i +1;
   }
   echo "<div align='center'> Le max est : $max </div>";
   ?>

Le même script PHP peut être écrit comme suit :

<?php 
   $tab= array($_GET["a"],$_GET["b"],$_GET["c"],$_GET["d"],$_GET["e"]);

   $max= $tab[0];

   $i=1;
   while( $i <= 4)
   {
     if ($max < $tab[$i])
       $max= $tab[$i];
     $i= $i +1;
   }
   echo "<div align='center'> Le max est : $max </div>";
   ?>

3. Tri d'un tableau :

<?php 
   $x1= $_GET["a"];
   $x2= $_GET["b"];
   $x3= $_GET["c"];
   $x4= $_GET["d"];
   $x5= $_GET["e"];

   $tab= array($x1,$x2,$x3,$x4,$x5);
   for($i=0;$i<=3;$i++)
   {
      for($j=$i+1;$j<=4;$j++)
     {
       if ($tab[$i] > $tab[$j])
       {
         $t= $tab[$i];
         $tab[$i]= $tab[$j];
         $tab[$j]= $t;
       }
     }
   }
   echo "La tableau trié : <br />";
   for($i=0;$i<=4;$i++)
      echo "tab[ $i ] = $tab[$i] <br />";
?>

4. Tri d'un tableau avec la fonction prédéfinie sort() :

<?php 
   $x1= $_GET["a"];
   $x2= $_GET["b"];
   $x3= $_GET["c"];
   $x4= $_GET["d"];
   
   $tab= array($x1,$x2,$x3,$x4);
   sort($tab);
   
   echo "La tableau trié : <br />";
   for($i=0;$i<=3;$i++)
      echo "tab[ $i ] = $tab[$i] <br />";
?>

TP N°3 / Variables Sessions et Cookies :

1. Création d'une variable session :

<?php
   session_start();

   $_SESSION["a"]= "Alger";
   $x= $_SESSION["a"] . " la blanche";
   echo "$x";
 ?>

2. Utilisation de la variable session :

<?php
   session_start();

   $y= $_SESSION["a"] . " la capitale";
   echo "$y";
 ?>

3. Utilisation des variables session pour les mots de passe :

3.1. Formulaire de saisie du mot de passe :

<html>
<head>
<title>Formulaire - variable session</title>
</head>

<body>
<form name="form1" method="post" action="sess_1.php">
  <p>
   Mot de passe :
    <input name="pw" type="password" id="pw" />
  </p>
  <p>
    <input type="submit" name="Submit" value="Envoyer" />
  </p>
</form>
</body>
</html>

3.2. Script PHP pour l'enregistrement de la variable session :

<?php
  session_start();
  $_SESSION["a"]= $_POST["pw"];
  echo "<a href='sess_2.php'>lien vers script 2 </a>";
?>

3.3. Utilisation de la variable session :

<?php
   session_start();

   if (isset($_SESSION["a"]))
      if ($_SESSION["a"] == "0000")
          echo "PW correcte !!";
      else
          echo "PW incorrecte !!";
   else
      echo "PW non saisi !!";
?>

4. Création de 2 variables cookies 30 et 60 secondes :

<?php 
   $_COOKIE [ "sec" ]= "L3 gtr"; 
   $var = $_COOKIE [ "sec" ];
   setcookie("sec",$var, time()+ 30);
	echo  "$var / ";

   $_COOKIE [ "gr" ]= "Groupe 2"; 
   $var = $_COOKIE [ "gr" ];
   setcookie("gr",$var, time()+ 60);
   echo  "$var";
 ?>

5. Utilisation des variables cookies (avant 30s, entre 30 et 60s et après 60s) :

<?php 
    $var = $_COOKIE [ 'sec' ];
    echo  "$var";

    $var = $_COOKIE [ 'gr' ];
    echo  "$var";
?>

TP N°4 / Fichiers :

1. Formulaire de saisie :

<html>
<head>
 <title>Fichiers</title>
</head>
<body>
 <p>Donner les informations de l'étudiant :</p>
 <form name="form1" method="get" action="enreg_fich.php">
  <p>
  <label for="mat">Matricule :</label>
  <input name="mat" type="text" id="mat" value="1001" />
  </p>

  <p>
  <label for="nom">Nom :</label>
  <input name="nom" type="text" id="nom" value="Ahmed Wahbi" />
  </p>

  <p>
  <label for="note">Note :</label>
  <input name="note" type="text" id="note" value="17.5" />
  </p>

  <p>
  <input type="submit" name="button" id="button" value="Enregistrer" />
  <input type="reset" name="button2" id="button2" value="Réinitialiser" />
  </p>
 </form>
</body>
</html>

2. Enregistrement dans un fichier :

<?php
   // Réalisé par Bourtala
$mat=htmlspecialchars($_GET["mat"]); $nom=htmlspecialchars($_GET["nom"]); $note= htmlspecialchars($_GET["note"]);
if ( empty($mat) || empty ($nom) || empty($note) ) { echo "Veuillez saisir tous les champs"; echo "<a href='saisie_fich.html'> Resaisir les infos de cet Etudiant </a>"; } else { if ($fp=fopen("etudiant.txt","a+")) { fwrite($fp,$mat); fwrite($fp,chr(13).chr(10)); fwrite($fp,$nom); fwrite($fp,chr(13).chr(10)); fwrite($fp,$note); fwrite($fp,chr(13).chr(10)); fclose($fp); echo "Informations saisies avec succès !! <br /><a href='saisie_fich.html'>Saisir les infos d'un autre Etudiant</a>"; } else { echo "Impossible d'ouvrir le fichier !!"; } } ?>

3. Formulaire de saisie du matricule (pour la recherche) :

<html
<head>
  <title>Recherche par matricule</title>
</head>

<body>
 <p>Donner les informations de l'étudiant :</p>
 <form id="form1" name="form1" method="get" action="18-rech_fich.php">
  <p>
   <label for="mat">Matricule :</label>
   <input name="mat" type="text" id="mat" value="1001" />
  </p>
  <p>
   <input type="submit" name="Submit" id="button" value="Rechercher" />
   <input type="reset" name="button2" id="button2" value="Réinitialiser" />
  </p>
 </form>
</body>
</html>

4. Script de recherche par matricule :

<?php
   $mat=htmlspecialchars($_GET["mat"]);
   if ( empty($mat))
   { 
     echo "Veuillez saisir le matricule <br />";
     echo "<a href='rech_fich.html'> Resaisir le matricule de cet Etudiant </a>";
   }
   else 
   { 
    if ($fp=fopen("etudiant.txt","r"))
    {
      $b= false;
      while ( ! feof( $fp) )
      {
        $mat1= fgets($fp);
        $nom1= fgets($fp);
        $note1= fgets($fp);
        if ( trim($mat) == trim ($mat1) )
        {
          echo "Etudiant trouvé !! <br />
                $mat1, $nom1, $note1 <br />
                <a href='rech_fich.html'>Saisir les infos d'un autre Etudiant</a>";
          $b= true;
        }
     }
     fclose($fp);
     if ( ! $b )
     {
        echo "Matricule introuvable !! <br />
              <a href='rech_fich.html'>Saisir les infos d'un autre Etudiant</a>";
     }
   }
   else
   {
     echo "Impossible d'ouvrir le fichier !!";
   }
 }
?>

TP N°5 / Création dynamique d'une BDD:

Script PHP :

<?php

$id = mysql_connect("localhost","root","");
if ( ! $id )
    die("Echec de connexion au serveur MySQL.<br />"); 

$requet = "drop database `gtr1617`";
$result = mysql_query($requet);
if ( $result ) 
   echo "Succès de suppression de la base de donnée.<br>"; 
else
   echo "Erreur de suppression de la base de données ou BDD non existante.<br>"; 
    	
// (re)création de la BDD
$requet = "create database `gtr1617`";
$result = mysql_query($requet);
if ( ! $result ) 
	die("Erreur de création de la BDD.<br />"); 
echo "la bdd gtr1617 a été créée avec succès <br />"; 

$id_db = mysql_select_db("gtr1617");
if( ! $id_db ) 
	die("Erreur de sélection de la base.<br />"); 
echo "Succès de connexion à la BDD.<br>"; 

// table etudiant
$requet = "drop table `etudiant`";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès de suppression de la table Etudiant.<br>"; 
else
	echo "Erreur de suppression de la table Etudiant ou table non existante.<br>"; 

$requet = "create table `etudiant` 
      	  (`mat` int(5),`nom` varchar(30), `section` char(1))";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès de création de la table Etudiant.<br>"; 
else
	echo "Erreur de création de la table Etudiant ou table existante.<br>"; 

$requet = "INSERT INTO `etudiant` (`mat`, `nom`, `section`) 
			VALUES
        	(10, 'Ahmed', 'A'),
        	(20, 'Réda', 'B'),
        	(30, 'Omar', 'C')";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès d'ajout d'enregistrements dans la table etudiant.<br>"; 
else
	echo "Erreur d'ajout dans la table etdudiant.<br>"; 

// table module
$requet = "create table `module` 
  	  (`code` int(1),`lib` varchar(30), `coef` int(1))";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès de création de la table module.<br>"; 
else
	echo "Erreur de création de la table module ou table exustante.<br>"; 

// table avoir
$requet = "create table `avoir` 
       	  (`mat` int(5),`code` int(1), `note` decimal(5,2) )";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès de création de la table Avoir.<br>"; 
else
	echo "Erreur de création de la table Avoir ou table exitante.<br>"; 

// Utilisation des variables 
$ta= "filiere";
$requet = "drop table `$ta`";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès de suppression de la table $ta.<br>"; 
else
	echo "Erreur de suppression de la table $ta ou table non existante.<br>"; 
//
$requet = "create table `$ta` 
       	  (`cf` varchar(2),`design` varchar(10))";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès de création de la table $ta.<br>"; 
else
	echo "Erreur de création de la table $ta.<br>"; 
//
$requet = "INSERT INTO `$ta` 
		VALUES
       	('10', 'GTR'),
       	('20', 'ISIL')";
$result = mysql_query($requet);
if ( $result ) 
	echo "Succès d'ajout d'enregistrements dans la table $ta.<br>"; 
else
	echo "Erreur d'ajout dans la table $ta.<br>"; 

?>
Télécharger le script

TP N°6 / Interrogation d'une BDD:

1. Enoncé Exercice (Groupe : 1 ) :

Etant donnée la BDD précédente (voir schéma relationnel généré par le script ci-dessus), donner le script PHP qui affiche la liste des etudiants ayant eu une note comprise entre 12 et 15 en module de code 10.

Script PHP (avec utilisation de variables):

NB.: Vous pouvez consulter la collaboration de votre collègue SAMAH Oussama pour contrôler l'affichage par un formulaire

<?php 
  $id = mysql_connect("localhost","root","");
if( ! $id ) die("Echec de connexion au serveur de base de données."); $id_db = mysql_select_db('gtr1617'); if( ! $id_db ) die("Echec de connexion à la base."); echo "Succès de connexion.<br>"; $i1=12; $i2=15; $cm='10'; $requet = "SELECT `etudiant`.`mat`,`nom`,`note` FROM `etudiant`,`avoir`,`module` where `etudiant`.`mat`=`avoir`.`mat` and `module`.`code`=`avoir`.`code` and `note`>='$i1' and `note`<='$i2' and `module`.`code`= '$cm' order by `nom`"; $result = mysql_query($requet); if ( $result ) { // mise en forme en tableau echo "<table width=\"100\" border=\"1\" cellspacing=\"0\" cellpadding=\"4\"> <tr> <th scope=\"col\">Matricule</th> <th scope=\"col\">Nom</th> <th scope=\"col\">Note</th> </tr>"; $ligne = mysql_fetch_row($result); while ( $ligne ) { $cd = $ligne[0]; $nom = $ligne[1]; $res = $ligne[2]; echo "<tr><td>$cd</td> <td>$nom</td> <td>$res</td></tr>"; $ligne = mysql_fetch_row($result); } echo "</table>"; } else echo "Pas de données."; mysql_close($id); ?>

Télécharger le script

2. Enoncé Exercice (Groupe 2 ) :

Etant donné la BDD ci-dessus, donner le script PHP qui affiche la liste des modules en lesquels des étudiants ont eu une note comprise entre 12 et 15.

Script PHP :

<?php 
  $id = mysql_connect("localhost","root","");
  if( ! $id ) 
    die("Echec de connexion au serveur de base de données.");
   
  $id_db = mysql_select_db('gtr1617');
  if( ! $id_db ) 
     die("Echec de connexion à la base.");

  echo "Succès de connexion."; 

  $requet = "SELECT distinct `module`.`code`,`lib`,`note`
         FROM `etudiant`,`avoir`,`module`
         where `etudiant`.`mat`=`avoir`.`mat`
           and `module`.`code`=`avoir`.`code`
           and `section`='1' and `note`>='12' and `note`<='15'
         order by `note`";
 
  $result = mysql_query($requet);
  if ( $result ) 
  { 
     $ligne = mysql_fetch_row($result);
     while ( $ligne ) 
     { 
       $cd  = $ligne[0]; 
       $nom = $ligne[1]; 
       $res = $ligne[2]; 
       echo "$cd , $nom , $res"; 

       $ligne = mysql_fetch_row($result);
     }
  }
  else 
     echo "Pas de données à afficher."; 
  mysql_close($id);
?>

Télécharger le script


TP N°7 / Fonctions Agrégats:

1. Enoncé Exercice :

Etant donnée la BDD précédente (voir schéma relationnel généré par le script ci-dessus), donner le script PHP qui :

  1. affiche la liste des moyennes par etudiant.
  2. affiche la liste des moyennes par module.
  3. affiche le max, le min, la moyenne et le nombre de notes par module

NB.: Vous pouvez consulter la collaboration de votre collègue SAMAH Oussama.

Script PHP :

<?php 
  $id = mysql_connect("localhost","root","");
  if( ! $id ) 
    die("Echec de connexion au serveur de base de données.");
  
  $id_db = mysql_select_db('gtr1617');
  if( ! $id_db ) 
     die("Echec de connexion à la base.");

  echo "Succès de connexion.<br>"; 


  // max d'une note, min, moyenne et nombre
  $requet3 = "SELECT `module`.`code`,`lib`, 
    max(`note`), min(`note`), avg(`note`), count(`note`)
    FROM `etudiant`,`avoir`,`module`
    where `etudiant`.`mat`=`avoir`.`mat`
      and `module`.`code`=`avoir`.`code`
    group by `module`.`code`
    having max(`note`)> 1";


  // moyenne par module
  $requet2 = "SELECT `module`.`code`,`lib`, 
     sum(`note`*`coef`) as somme, sum(coef) as scoef, sum(`note`*`coef`)/sum(coef)
    FROM `etudiant`,`avoir`,`module`
    where `etudiant`.`mat`=`avoir`.`mat`
      and `module`.`code`=`avoir`.`code`
    group by `module`.`code`
    order by `lib`";
  
  
  // moyenne par etudiant
  $requet = "SELECT `etudiant`.`mat`,`nom`, 
        sum(`note`*`coef`), sum(coef), sum(`note`*`coef`)/sum(coef)
     FROM `etudiant`,`avoir`,`module`
     where `etudiant`.`mat`=`avoir`.`mat`
       and `module`.`code`=`avoir`.`code`
     group by `etudiant`.`mat`
     order by `nom`";
  
  // $result = mysql_query($requet3);
  // $result = mysql_query($requet2);
  $result = mysql_query($requet);

  if ( $result ) 
  { 
     $ligne = mysql_fetch_row($result);
     while ( $ligne ) 
     { 
       $cd  = $ligne[0]; 
       $nom = $ligne[1]; 
       $res = $ligne[2]; 
       $sc = $ligne[3];
       $m = $ligne[4]; 

       echo "$cd , $nom , $res , $sc, $m<br />"; 
  
       $ligne = mysql_fetch_row($result);
     }
  } 
  else 
     echo "Pas de données."; 
  mysql_close($id);
?>