Examen programmation web php corrigé
Examen programmation web php corrigé pdf
...
EXERCICE 1 : Afficher dans une page la phrase « Ceci est une ligne créée uniquement en PHP ».
Afficher à la ligne suivante : « Ceci est la 2ème phrase créée avec PHP».
Créer un lien sur le site de l’ENITA (www.enitab.fr).
Objectifs : inclure des balises php dans une page HTML. Mixer le code php et HTML.
Utilisation de balises.
Fichier ex1.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>EX1 : première page en PHP</title>
</head>
<body>
<? echo "Ceci est une ligne créée uniquement en PHP"; ?>
<BR>
<?echo "Ceci est la 2ème phrase créée avec PHP <BR>"; ?>
<A href= "…"> Accès au site de l'ENITAB </A>
</body>
</html>
EXERCICE 2 : Déclarer 2 variables : nom et prénom. Les initialiser avec les valeurs « Dupont » et « Louis » et les afficher sur la page en utilisant 3 modes syntaxiques différents :
- 2 commandes echo
- 1 commande echo avec 1 seule chaîne de caractère
- 1 commande echo avec le point de concaténation
Objectifs : Déclaration et initialisation de variables. Utilisation du point de concaténation.
Fichier ex2.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX2 : utilisation de variables</TITLE>
</HEAD>
<BODY>
<?
$s_nom; $s_prenom; //déclaration des variables
$s_nom= "Dupont" ;
$s_prenom = "Louis";
Echo $s_nom;
Echo " ";
Echo $s_prenom;
echo "<BR>";
Echo "$s_nom $s_prenom";
echo "<BR>";
Echo $s_nom . " " . $s_prenom;
echo "<BR>";
?>
</BODY>
</HTML>
EXERCICE 3 : Créer une balise de titre H1 : « Calcul sur les variables ».
Affecter respectivement les valeurs 0.206, 150 et 10 aux variables TVA, prix et Nombre.
Calculer le prix HT et le prix TTC pour les 10 articles et les afficher.
On affichera également le type de chaque variable.
Objectifs : Calcul sur des variables. Gestion des types de données.
Fichier ex3.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX3 : Calcul sur des variables</TITLE>
</HEAD>
<H1> Calcul sur les variables </H1>
<BODY>
<?
$d_prix; $d_tva; $n_nombre;$d_tot_ht; $d_tot_ttc; //déclaration des variables
$d_prix = 150;
$d_tva = 0.206;
$n_nombre= 10;
$d_tot_ht = $d_prix * $n_nombre;
$d_tot_ttc = $d_tot_ht * (1+$d_tva);
Echo "le montant HT est égal à $d_tot_ht et est de type " . gettype($d_tot_ht);
Echo "<BR>";
Echo "le montant TTC est égal à $d_tot_ttc et est de type " . gettype($d_tot_ttc);
Echo "<BR>";
Echo "la variable $d_prix est de type " . gettype($d_prix);
Echo "<BR>";
Echo "la variable $d_tva est de type " . gettype($d_tva);
Echo "<BR>";
Echo "la variable $n_nombre est de type " . gettype($n_nombre);
?>
</BODY>
</HTML>
EXERCICE 4 : Affecter respectivement les valeurs 150, 350 et 10 aux variables prix_table, prix_armoire et Nombre.
Calculer le prix HT total pour les 10 armoires.
Comparer le prix de l’armoire et de la table et afficher quel est le prix le plus élevé.
Objectifs : Utilisation de l’instruction IF.
Fichier ex4.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX4 : utilisation de l'instruction IF</TITLE>
</HEAD>
<H1> Utilisation de l'instructeur IF</H1>
<BODY>
<?
$d_prix_armoire; $d_prix_table; $n_nombre;$d_tot_ht_armoire;
$d_tot_ht_table; $d_seuil; //déclaration des variables
$d_prix_armoire = 50.00;
$d_prix_table = 150.00;
$n_nombre= 10;
$d_seuil = 2000.00;
$d_tot_ht_armoire = $d_prix_armoire * $n_nombre;
// test sur le prix total des armoires
If ($d_tot_ht_armoire > $d_seuil)
{
echo "Le prix total pour les $n_nombre armoires est de $d_tot_ht_armoire <BR>";
}
//comparaison entre le prix de l'armoire et de la table
If ($d_prix_armoire > $d_prix_table)
{
echo "le prix de l'armoire ($d_prix_armoire) est supérieur au prix de la table
($d_prix_table)";
}
else
{
if ($d_prix_armoire == $d_prix_table)
{
echo "le prix de l'armoire ($d_prix_armoire) est égal au prix de la table
($d_prix_table)";
}
else
{
echo "le prix de l'armoire ($d_prix_armoire) est inférieur au prix de la table
($d_prix_table)";
}
}
?>
</BODY>
</HTML>
EXERCICE 5 : Affecter une valeur à la variable nbre et afficher la somme des entiers de 1 à nbre.
Nb : on réalisera cet exercice avec l’instruction FOR puis avec l’instruction WHILE.
Objectifs : Utilisation des instructions WHILE et FOR.
UTILISATION DE FOR
Fichier ex5-a.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX5-a : utilisation de l'instruction FOR</TITLE>
</HEAD>
<H1> Utilisation de l'instructeur FOR</H1>
<BODY>
<?
$n_nbre; $i; $n_somme; //déclaration des variables
$n_nbre = 5;
$n_somme = 0;
for ($i=1; $i<=$n_nbre; $i++)
{
$n_somme = $n_somme + $i;
}
echo "La somme des entiers de 1 à $n_nbre est égale à : $n_somme";
?>
</BODY>
</HTML>
UTILISATION DE WHILE
Fichier ex5-b.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX5-b : utilisation de l'instruction WHILE</TITLE>
</HEAD>
<H1> Utilisation de l'instructeur WHILE</H1>
<BODY>
<?
$n_nbre; $i; $n_somme; //déclaration des variables
$n_nbre = 5;
$n_somme = 0;
$i=1;
While($i<=$n_nbre)
{
$n_somme = $n_somme + $i;
$i++;
}
echo "La somme des entiers de 1 à $n_nbre est égale à : $n_somme";
?>
</BODY>
</HTML>
EXERCICE 6 : Initialiser un tableau de 4 cases (contenant des nombres) et en faire la somme.
- a) sans faire de fonction
- b) en créant une fonction somme
- c) en créant un fichier spécifique qui contient la fonction somme.
Exemples de valeurs pour obtenir les résultats ci-dessous : 3, 2, 10, 5.
Objectifs :
- a) Utilisation des tableaux.
- b) Utilisation de fonctions
- c) Utilisation de fichiers : require()
Fichier ex6-a.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX 6a : Utilisation de tableaux</TITLE>
</HEAD>
<H1> Utilisation de tableaux</H1>
<BODY>
<?
$n_nbre; $i; $n_somme; $tablo; //déclaration des variables
$tablo[0]=3;
$tablo[1]=2;
$tablo[2]=10;
$tablo[3]=5;
$n_somme = 0;
$i=0;
$n_nbre = count($tablo);
//parcourt les cases du tableau et effectue la somme
While($i<=$n_nbre)
{
$n_somme = $n_somme + $tablo[$i];
$i++;
}
// affichage de la somme
echo "La somme des nombres du tableau est égale à : $n_somme";
echo "<BR>";
?>
</BODY>
</HTML>
Fichier ex6-b.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX 6b : utilisation de fonction</TITLE>
<?
function somme ($t)
{ $n; $d_som; $i;
$n = count($t); // compte le nombre de cases du tableau
$d_som=0;
$i=0;
While ($i <= $n) //calcul de la place
{
$d_som=$d_som+$t[$i];
$i=$i+1;
}
return number_format($d_som,2);
}
?>
</HEAD>
<H1> Utilisation de tableaux et de fonctions</H1>
<BODY>
<?
$d_somme; $tablo; //déclaration des variables
$tablo[0]=3;
$tablo[1]=2;
$tablo[2]=10;
$tablo[3]=5;
$d_somme = somme ($tablo);
// affichage de la somme
echo "La somme des nombres du tableau est égale à : $d_somme";
echo "<BR>";
?>
</BODY>
</HTML>
Fichier ex6-c.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX6-c : Utilisation de fonction dans un fichier extérieur à l'application</TITLE>
<? //on inclut le fichier qui contient la fonction
require ("fonctions.php");
?>
</HEAD>
<H1> Utilisation de tableaux et de fonctions</H1>
<BODY>
<?
$d_somme; $tablo; //déclaration des variables
$tablo[0]=3;
$tablo[1]=2;
$tablo[2]=10;
$tablo[3]=5;
$d_somme = somme ($tablo);
// affichage de la somme
echo "La somme des nombres du tableau est égale à : $d_somme";
echo "<BR>";
?>
</BODY>
</HTML>
Fichier fonctions.php
<?
function somme ($t)
{ $n; $d_som; $i;
$n = count($t); // compte le nombre de cases du tableau
$d_som=0;
$i=0;
While ($i <= $n) //calcul de la place
{
$d_som=$d_som+$t[$i];
$i=$i+1;
}
return number_format($d_som,2);
}
?>
EXERCICE 7 : Initialiser un tableau de 4 cases (contenant des nombres en francs) et en faire la conversion en euros en utilisant une procédure. On affichera la somme totale des cases du tableau en euros ainsi que chaque case du tableau.
Exemples de nombres pour obtenir les résultats ci-dessous : 3 F, 2 F, 10 F, 5 F.
Objectifs : Utilisation de procédures.
Fichier ex7.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX7 : utiliastion de procédures</TITLE>
<? //on inclut le fichier qui contient la fonction
require ("fonctions.php");
require ("procedures.php");
?>
</HEAD>
<H1> Utilisation de tableaux et de fonctions</H1>
<BODY>
<?
$n_somme; $tablo; //déclaration des variables
$tablo[0]=3;
$tablo[1]=2;
$tablo[2]=10;
$tablo[3]=5;
// ne pas oublier de mettre le caractère & pour transmettre le tableau
// et non les valeurs du tableau.
conversion (&$tablo);
$n_somme = somme ($tablo);
// affichage de la somme
echo "La somme des nombres du tableau est égale à : $n_somme";
echo "<BR>";
affichage ($tablo);
?>
</BODY>
</HTML>
Fichier procedures.php
< ? // CONVERTIT UN TABLEAU DES FRANCS EN EUROS
function conversion ($t)
{ $d_euro; $i_nbre ; $i;
$d_euro = 6.556597;
$i_nbre = count ($t);
$i=0;
While ($i < $i_nbre)
{
$t[$i]=$t[$i]/$d_euro;
$i=$i+1;
}
}
// AFFICHE TOUTES LES CASES D'UN TABLEAU EN FORMAT NUMERIQUE
function affichage ($t)
{ $ind; $val;
reset ($t); // se place sur la 1ère ligne du tableau
// parcours toutes les cases du tableau et affecte
//les valeurs des cases et des indices aux 2 variables ind et val
While ((List ($ind , $val) = each($t))== true)
{
echo "la valeur de la case d'indice $ind est égale à " . number_format($val,2) .
"<BR>";
}
} ?>
EXERCICE 8 : Construire une page qui permette de saisir un nom et un mot de passe.
Renvoyer l’utilisateur sur une autre page et lui afficher si son mot de passe est correct ou non (NB : le mot de passe valide sera « mot »).
Sur cette 2ème page : prévoir un bouton retour.
Objectifs : Utilisation de formulaires et de contrôles. Bouton submit. Retour page précédente.
Fichier ex8_p1.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX8_p1 : Formulaires et contrôles</TITLE>
</HEAD>
<BODY>
<FORM METHOD = POST ACTION ="ex8_p2.php">
<P>Saisir votre nom : <INPUT id=zt_nom name=zt_nom></P>
<P>Saisir votre mot de passe : <INPUT id=zt_password type=password
name=zt_password></P>
<P><INPUT id=bt_submit type=submit value=Soumettre name=bt_submit></P>
</FORM>
</BODY>
</HTML>
Fichier ex8_p2.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX8_p2 : Formulaires et contrôles</TITLE>
</HEAD>
<BODY>
<? // test du mot de passe
If ($zt_password == "mot")
{ echo "Bienvenue M. $zt_nom : votre mot de passe est correct";
}
else
{
echo "Désolé M. $zt_nom votre mot de passe est incorrect";
}
?>
<INPUT Type=button value = "retour" onclick = "self.history.back();">
</BODY>
</HTML>
EXERCICE 9 : Construire une page qui permette d’afficher :
- une liste avec les noms des vendeurs suivants : M. Dupont, M. Louis, M. Martin et M.
Durand (on utilisera une liste non modifiable).
- une liste qui affiche la liste des produits disponibles (la liste des produits est paramétrée dans le fichier produits.php)
Ajouter une zone de texte pour saisir le nombre de produits à commander et renvoyer sur une autre page le récapitulatif de la demande (ex : vous avez commandé 10 armoires auprès de M. Martin).
Objectifs : Utilisation de formulaires et de contrôles. Liste de choix et liste de valeurs..
Fichier ex9-a.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX9-a : Utilisation de listbox</TITLE>
<?
//inclut le fichier qui contient la liste des produits require "produits.php";
?>
</HEAD>
<BODY>
<FORM action = "ex9-b.php" METHOD = POST>
<P>Liste des vendeurs :</P>
<SELECT NAME ="lst_vendeurs" size=4>
<OPTION VALUE ="Martin" > Martin </OPTION>
<OPTION VALUE ="Dupont" > Dupont </OPTION>
<OPTION VALUE ="Durand" > Durand </OPTION>
<OPTION VALUE ="Louis" > Louis </OPTION>
</SELECT>
<BR>
<P>Liste des Produits :</P>
<P>
<SELECT NAME ="lst_produits" >
<? $i; $n; $s_val;
sort ($t);
$n = count($t);
//pour chaque case du tableau, crée une option dans la liste
for ($i=0; $i<$n; $i++)
{ $s_val = $t[$i]; ?>
<OPTION VALUE ="<? echo $s_val ?>" > <? echo $s_val ?> </OPTION>
<?
}
?>
</SELECT>
<P>Nombre de produits à commander :
<INPUT id=zt_nbre name=zt_nbre style="WIDTH: 50px; HEIGHT: 22px" size=7></P>
<P>
<INPUT TYPE = "submit" name = bt_submit value="soumettre" > </P>
</FORM>
</BODY>
</HTML>
Fichier produits.php
<? //liste des produits
$t;
$t[0]="Armoire";
$t[1]="Bureau";
$t[2]="Chaise";
$t[3]="Table";
$t[4]="Buffet";
$t[5]="Fauteuil";
?>
Fichier ex9-b.php
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX9-b : Utilisation de combobox</TITLE>
</HEAD>
<BODY>
<?
echo "vous avez commandé $zt_nbre $lst_produits auprès du vendeur $lst_vendeurs";
?>
<BR>
<INPUT TYPE = button Value = "Retour" onclick = "self.history.back()">
</BODY>
</HTML>
EXERCICE 10 : Reprendre l’exercice 9 et indiquer si la saisie n’est pas complète sur la 2ème page.
Créer une procédure qui remplit la liste à partir d’un tableau.
Objectifs : Tests de cohérence sur le serveur. Procédures.
Fichier ex10-a.php
<HTML>
<HEAD>
<?
// inclut le fichier qui contient la liste des produits
require "produits.php";
// inclut le fichier qui permet de remplir une liste à partir d'un tableau
require "procedures.php";
?>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>EX10-a : tests de cohérence, procédures</TITLE>
</HEAD>
<BODY>
<FORM action = "ex10-b.php" METHOD = POST>
<P>Liste des vendeurs :</P>
<SELECT NAME ="lst_vendeurs" size=4>
<OPTION VALUE ="Martin" > Martin </OPTION>
<OPTION VALUE ="Dupont" > Dupont </OPTION>
<OPTION VALUE ="Durand" > Durand </OPTION>
<OPTION VALUE ="Louis" > Louis </OPTION>
</SELECT>
<BR>
<P>Liste des Produits :</P>
<P>
<? //tri le tableau
sort ($t);
//appel de la procédure qui remplit une liste à partir d’un tableau
REMPLIR ($t, "lst_produits");
?>