FicheTD PHP
FicheTD PHP
FicheTD PHP
Démarrage
Afin de pouvoir pratiquer le PHP, il vous faut un serveur Web. On peut transformer n’importe quel
ordinateur en serveur Web à condition d’avoir installé les bons logiciels. Des multiples alternatives existent,
autant pour la plateforme Windows (UwAmp,
Wamp, Mov’Amp, EasyPHP), que pour la
plateforme Mac (Mamp). Ces logiciels installent sur
les machine non seulement un serveur Web, mais
également PHP et même MySQL. Dans les salles
machines, nous avons installé UwAmp. Il faut donc
le démarrer avant de commencer cette fiche de TD.
Une fois démarré, UwAmp ouvrira une fênetre de contrôle (image en haut à droite) et se mettra en
exécution en arrière plan (indiqué par l’icône à côté de l’horloge).
A partir de la fênetre de contrôle, nous allons pouvoir accèder au dossier « www », où doivent se trouver
les pages pour notre site. En cliquant sur le bouton « www Dossier », UwAmp nous ouvrira le dossier
c:\UwAmp\www, qui est le dossier utilisé par défaut dans nos salles de TDs. C’est dans ce dossier qu’on
enregistrera les pages qu’on réalisera tout au long de cette fiche.
Université Paris 1 Panthéon Sorbonne 2 / 13
Ecole de Management de la Sorbonne
Enseignement : Informatique
Pour éditer nos pages Web (HTML, CSS et PHP), nous allons utiliser « Notepad++ », que nous avons déjà
utilisé pour les fiches d’exercices sur HTML et CSS. Les pages PHP doivent ainsi être enregistrées dans le
dossier www (indiqué ci-dessus) pour que le serveur Web UwAmp puisse les interpréter. A titre d’exemple,
nous allons donc d’abord créer une première page PHP (voir image ci-dessous) que nous allons enregistrer
dans ce dossier « c:\UwAmp\www » sous le nom « premier.php ». Attention à bien enregistrer la page au
format PHP (et non TXT).
Une fois enregistrée sur notre serveur local, notre page est accessible par le Web :
http://localhost/premier.php
Université Paris 1 Panthéon Sorbonne 3 / 13
Ecole de Management de la Sorbonne
Enseignement : Informatique
Exercices :
1) Dans une boutique de vêtements, on souhaite appliquer une remise de prix en fonction de la
valeur total des achats. Pour plus de 50€ en achat, on souhaite offrir aux clients une remise de
10%. Pour plus de 100€ d’achat, on lui offrira une remise de 20%, alors que pour plus de 150€
d’achats, on offrira 25%. Construire une page Web permettant à un client d’indiquer le montant
de ses achats et de savoir ainsi le montant qu’il aura en remise.
Dans cet exercice, nous allons implémenter un des algorithmes que nous avons réalisé lors de la Fiche n° 3.
Pour le réaliser, nous avons besoin d’une valeur en entrée correspondant au montant total d’achats. On va
donc devoir demander à l’utilisateur de nous fournir cette valeur. Pour interagir avec notre utilisateur, nous
allons lui proposer un formulaire très simple, où il pourra renseigner ce montant. Nous allons donc
démarrer l’exercice par la création d’un formulaire en HTML comme celui-ci.
Pour l’entrée des données, nous allons proposer à l’utilisateur un champ texte à remplir et un bouton. Tous
les deux sont représentés par une balise « input » : <input type="text" … » pour le champ de texte et
<input type="submit" … » pour le bouton. Très important : notre champs texte devra aussi avoir un nom
(<input type="text" name="montant" />) qui va nous permettre après de récupérer les données que
l’utilisateur aurait rempli à l’intérieur
Université Paris 1 Panthéon Sorbonne 4 / 13
Ecole de Management de la Sorbonne
Enseignement : Informatique
Une fois terminé notre formulaire, on va pouvoir se concentrer sur notre page PHP. Pour commencer, nous
allons créer une nouvelle page et l’enregistrer sur le dossier dossier « c:\UwAmp\www. Attention à
l’enregistrer avec le même nom que nous avons indiqué dans « form action="…" » de notre formulaire.
$mont = $_POST["montant"] ;
2) Rédiger un formulaire HTML qui demande à l’utilisateur son salaire mensuel. Rédiger une page
PHP qui, à partir des informations fournies par l’utilisateur dans le formulaire, indiquer à
l’utilisateur quelle la tranche d’imposition qui convient à ses revenus. Les barèmes d’imposition
sont indiqués dans la table ci-dessous.
jusqu’à 5 963 € 0%
de 11 896 € à 26 420 € 14 %
de 26 420 € à 70 830 € 30 %
plus de 70 830 € 41 %
champ nommé « salaire », on fera $_POST["salaire"] ). Une fois qu’on aura récupéré le contenu du champ
« salaire », on pourra alors calculer la valeur du salaire annuel ($salaire * 12), puis le tester à l’aide de
l’instruction « if » afin de connaître dans quelle catégorie de salaire notre salarié se trouve.
3) Réaliser une calculette simple (avec les quatre opérations de base : +, -, * et / ) à l’aide des
langages HTML/CSS et PHP.
4) Une banque en ligne offre un nouvel investissement de type épargne, le Livret Alpha+, lequel
offre pendant les 3 premières années un taux de 2% à l’an et de 1,5% pour les années suivantes.
Construire un formulaire et une page PHP qui, à partir d’un montant initial renseigné par le
client, montrent au client une prévision de ses gains pour les 8 prochaines années.
Ensuite, on devrait utiliser au moins une boucle pour pouvoir incrémenter ce montant initial d’un
rendement selon un taux fixe 2% pendant 3 ans, puis de 1,5% pendant les 5 années suivantes. Par exemple,
on peut faire une première boucle (une boucle « for », par exemple), qui va nous permettre de répéter une
même opération (le fait d’incrémenter le montant), pour les 3 premières années. Puis, on peut faire
exactement la même chose pour les 5 années suivantes, ce qui implique une nouvelle boucle, mais cette
fois-ci, de l’année 4 à l’année 8 (« for ($i=4; $i<=8; $i++) ») avec une valeur de taux de 1,5% (« $taux =
0.015; »). Il s’agit d’une solution possible. A vous d’expérimenter d’autres solutions… J
Université Paris 1 Panthéon Sorbonne 8 / 13
Ecole de Management de la Sorbonne
Enseignement : Informatique
5) A l’aide de l’outil phpMyAdmin (accessible à partir de la fenêtre de contrôle UwAmp), créer une
base « Produits » contenant une table « Produit » avec les données indiquées ci-dessous.
L’outil phpMyAdmin nous permet de créer des nouvelles bases de données et d’y ajouter de nouvelles
tables et des nouvelles données. Pour créer une nouvelle base, il faut cliquer sur « Bases de données »,
puis renseigner le nom de la nouvelle base (« Produits » dans notre cas).
A_I : Auto-Incrément
Puis, en cliquant sur « insérer », nous allons pouvoir y insérer les données demandées. En cliquant sur
« afficher », nous allons pouvoir vérifier après si nos données ont bien été insérées.
Université Paris 1 Panthéon Sorbonne 10 / 13
Ecole de Management de la Sorbonne
Enseignement : Informatique
La création d’un utilisateur est possible à partir du lien « privilèges » qui apparaît une fois qu’on clique sur
la base de données. A partir de là, nous allons pouvoir ajouter un nouvel utilisateur.
7) Une fois les exercices 4 et 5 réalisés, créer une page PHP capable de se connecter à la base de
données « Produits », utilisant l’utilisateur et le mot de passe que vous venez de créer, et de
lister l’ensemble de produits présents dans la base de données. Vous pouvez utiliser pour cela la
requête SQL « SELECT * FROM Produit ».
Une fois en possession des résultats de la requête, nous allons pouvoir les afficher dans un tableau (un
« echo " <table> " ; » nous aidera pour cela). Ces résultats incluent non seulement les données (nos
produits), mais aussi les noms des colonnes (attributs) de la table « Produit ». Nous allons donc pouvoir
récupérer les noms des colonnes pour les afficher dans notre
$titres = $resultat -> fetch_fields() ;
tableau. Ceci est possible à travers l’opération « fetch_fields » de foreach ($titres as $colonne) {
l’objet $resultat (« $resultat -> fetch_fields() ; »). Cette echo "<th> "
opération nous retournera un tableau associatif que nous allons . $colonne->name . " </th>" ;
}
parcourir à l’aide d’une boucle « foreach ».
Université Paris 1 Panthéon Sorbonne 12 / 13
Ecole de Management de la Sorbonne
Enseignement : Informatique
Après avoir affiché les noms de colonnes, nous pouvons nous concentrer sur les données proprement
parlées. Nous allons récupérer ligne à ligne (c’est-à-dire, produit à produit), à l’aide de l’opération
« fetch_object » de l’objet $resultat dans une boucle (« while ( $ligne = $resultat->fetch_object() ) »).
Cette opération nous retournera un objet dont les
attributs correspondent aux colonnes de la table Produit. while ($ligne = $resultat->fetch_object()) {
echo "<tr>" ;
Nous pouvons ainsi utiliser une boucle « foreach » pour
//on récupère chaque attribut de la ligne
récupérer la valeur de chacun de ces attributs (« foreach foreach ($ligne as $colonne=>$val) {
($ligne as $colonne=>$val) »). echo "<td> " . $val . " </td>" ;
}
Une fois les données récupérées et affichées, nous echo "</tr>" ;
pouvons fermer la connexion que nous avions ouvert tout }
if (! $resultat ) {
echo "<p>Impossible de créer le produit $nom. </p>" ;
}
else {
//on recupere le dernier id utilisé pour le code
$code = $mysqli->insert_id;
echo "<p> Nouveau produit : $code $nom
$descr $prix </p>" ;
}