Introduction au développement PHP dynamique
Introduction au développement PHP dynamique
dynamique
4
6.5. Suppression d’un enregistrement _______________________________________ 37
Correction ________________________________________________________________ 38
Atelier 6 : Les sessions _____________________________________________________ 44
1. Principe des sessions en PHP ___________________________________________ 47
2. Exercice d’application : authentification par session _________________________ 48
Mini-Projet _______________________________________________________________ 49
Bibliographie _____________________________________________________________ 50
5
Matière : Technologies & Niveau : GLSI2 & BIGDATA2
Programmation WEB & IOT_SEM
Enseignant : Dr Riadh BOUSLIMI AU : 2021/2022 – Semestre 2
Objectifs :
1. Introduction
Le langage PHP a été créé par Rasmus Lerdorf en 1994 pour ses besoins personnels. Le
mot clé Php signifie Personnal Home Page. [REF5]
1
2. Environnement de développement
Un site Web dynamique nécessite l’installation d’un serveur d’application en local, qui
servira à interpréter les scripts PHP et un Serveur MySQL pour créer une connexion à la
base de données et tester les requêtes de manipulation des données de la base.
Vous pourrez programmer en PHP sans avoir besoin d’être connecté sur Internet, sinon vous
serez amené à envoyer les fichiers vers le serveur de l’hébergeur.
Pour les programmeurs Windows, il existe un utilitaire très pratique (XAMPP) qui installera
Apache, Php, MySQL et aussi phpMyAdmin (une interface conviviale gratuite pour la
gestion des bases de données MySQL). [REF4]
À savoir
Objectifs :
4
Figure 2 : Explorateur du dossier XAMPP
▪ On lance XAMPP pour mettre en œuvre le trinôme Apache - PHP - MySQL qui
activera ainsi le réseau local.
3. Les constantes
La définition d’une constante sera avec la fonction define().
Exemple
<html>
<head>
<title>Les constants en PHP</title>
</head>
<body>
<?php
define("ISLAIB","Institut Supérieur des Langues Appliquées et
d’Informatique de Béjà");
echo "Je suis étudiant à la ".ISETJ;
// C’est du commentaires
?>
</body>
</html>
Remarque
L’opérateur «.» permet la concaténation des contenus des objets.
▪ Le nom d’une variable doit commencer par une lettre (majuscule ou minuscule)
ou un caractère "_" et non pas par un chiffre.
▪ Le nom d’une variable peut comporter des lettres, des chiffres et le caractère _
ATTENTION : Les espaces ne sont autorisés pour définir un nom d’une variable.
6
Tableau 1 : Quelques exemples de déclaration de variables
Nom de variable correct Nom de variable incorrect Raison
$NomPrenom $Nom et prenom comporte des espaces
$Nom_prenom $987Nom_et_prenom commence par un chiffre
$nom_et_prenom $riadh@[Link] caractère spécial @
$nom_de_variable_123 $Nom-et-prenom signe - interdit
$nom_2_variable nom_et_prenom ne commence pas par $
ATTENTION : En PHP, tous les noms d’objets sont tous sensibles à la casse c’est-à-dire il
y’en a une différence entre les lettres qui sont en majuscules et qui sont minuscules).
7
4.2. Variables tableaux
Un tableau est une variable qui peut contenir des valeurs hétérogènes pas obligatoirement de
mêmes types. L’accès à un élément sera via son index et qui doit commencer à partir de 0.
Exemple d’affectation de valeurs :
$Tableau[0] = 11;
$Tableau[1] = "Bonjour";
Avec PHP, On peut faire une affection des valeurs sans assignés les indices et dans ce cas le
premier élément sera d’indice 0.
Exemple d’affectation de valeurs :
$Tableau[] = 11;
$Tableau[] = "Bonjour";
Remarque
On peut déclarer un tableau en utilisant la fonction array().
Exemple :
<?php
$Tableau = array(12,"Bonjour");
?>
Une autre fonction très employée et qui permet de vérifier si une variable est affectée par une
valeur est : isset(v). La fonction renvoie TRUE si la variable v admet une valeur, FALSE
sinon.
Exemple
$Prenom = "Riadh";
echo(isset($Prenom)); // TRUE
La vérification si une valeur est vide sera via la fonction empty et pour vérifier si la valeur
est numérique on peut utiliser la fonction prédéfinie isnumeric.
4.6. Quelques fonctions sur les chaînes de caractères
▪ $ch_res = strchr($ch,$occurrence) ;
Renvoie une chaîne à partir de la première position du caractère dans la chaîne.
▪ $n = strcmp($ch_1,$ch_2) ;
Compare en binaire deux chaînes de caractères et renvoie un nombre négatif si la
première chaîne et plus petite que la seconde, un positif dans le cas contraire ou un nul
en cas d’égalité.
▪ $ch_res = substr($ch,$pos,$longueur) ;
Retourne une sous-chaine à partir de la position spécifiée et jusqu’à une certaine
longueur.
▪ $ch_res = trim($chaine) ;
Supprime les espaces blancs du début et à la fin d’une chaîne de caractères.
▪ $n = strlen($chaine) ;
Renvoie la longueur de la chaîne de caractères.
▪ $tab = explode($delimiteur,$chaine) ;
Renvoie un tableau contenant les chaines délimitées par le delimiteur (ex : « : », « , »,
« ; » etc.) .
9
▪ $ch_res = implode($delimiteur,$tab) ;
Renvoie une nouvelle chaine de caractères et concatène tous les éléments du tableau et
dont chaque élément sera séparé par un délimiteur.
▪ $ch_res = str_replace($rech,$remplacement,$chaine);
Remplace tous les caractères dans la chaine est renvoie une nouvelle chaine résultat.
5. Les opérateurs
5.1. Les opérateurs arithmétiques
On donne dans ce qui suit un tableau contenant les opérateurs arithmétiques :
On suppose qu’on a une variable $x = 6.
Tableau 3 : Liste des opérateurs arithmétiques
Opérateur Description Exemple Résultat
+ Additionne deux valeurs $x+4 10
- Soustraire deux valeurs $x-4 2
* Multiplie deux valeurs $x*4 24
/ Divise deux valeurs $x/5 1.122
% Reste de la division entière $x=$x%3 0
Exemple
<html>
<head>
<title>Les opérateurs</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
echo $a + $b."<br>";
echo $a - $b."<br>";
echo $a * $b."<br>";
echo $a / $b."<br>";
?>
</body>
</html>
10
5.2. Les opérateurs d'assignation
Pour minimiser l’écriture d’une expression, on peut simplifier l’opération d’addition, de
soustraction, de multiplication, modulo, ou autre par les opérateurs : +=, -=, *=, /=, %=, |=, ^=,
&=, et .= .
Exemples
$x = 5; // $x vaut 5
$x += 3; // $x vaut 8
$x -= 4; // $x vaut 4
$x %= 4; // $x vaut 0
11
5.4. Les opérateurs de comparaison
La comparaison de deux variables se fait en utilisant les opérateurs suivants :
Opérateur Description Exemple Résultat
== Permet de vérifier l’égalité entre deux $x==2 Renvoie 1 si $x
valeurs est égal à 2, sinon
0
< Permet de vérifier si une valeur est $x<2 Renvoie 1 si $x
strictement inférieure à une valeur est inférieur à 2,
sinon 0
<= Permet de vérifier si une valeur est inférieure $x<=2 Renvoie 1 si $x
ou égale à une valeur est inférieur à 2,
sinon 0
> Permet de vérifier si une variable est $x>2 Renvoie 1 si $x
strictement supérieure à une valeur est supérieur à 2,
sinon 0
>= Permet de vérifier si une variable est $x>=2 Retourne 1 si $x
supérieure ou égale à une valeur est supérieur ou
égal à 2, sinon 0
!= Vérifie si une valeur est différente d'une $x!=2 Retourne 1 si $x
autre valeur est différent de 2,
sinon 0
12
6. Exercices d’application
Exercice n°1 : les variables simples
Question 1 : Écrire une page HTML « [Link] » qui affiche cela
Question 2 : Écrire une page PHP « [Link] » qui affiche la même chose en utilisant les
variables :
$b="Bonjour";
$c="à tous";
$ligne="<hr>";
Question 2 : Écrire une page PHP « [Link] » qui affiche la même chose en utilisant les
variables :
$a="bonjour1";
$b="bonjour2";
$c="bonjour3";
$d="bonjour4";
$e="bonjour5";
$f="bonjour6";
13
Matière : Technologies & Niveau : GLSI2 & BIGDATA2
Programmation WEB & IOT_SEM
Enseignant : Dr Riadh BOUSLIMI AU : 2021/2022 – Semestre 2
Objectifs :
14
liste d’instructions non-réalisables.
}
15
Exemple
Où a=8 et b=3 :
<html>
<head>
<title>Les structures conditionnelles</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
if ($a < $b)
{
echo "a est plus petit que b";
}
else
{
echo "a n'est pas plus petit que b";
}
?>
</body>
</html>
if (condition 1) {
liste d'instructions associée à la condition 1
}
else if (condition 2 {
liste d'instructions associée à la condition 2
}
...
else {
série d'instructions
}
16
2.4.L'instruction switch
L'instruction switch est très utiliser dans le cas ou une variable de type scalaire prendra
plusieurs valeurs. L’instruction switch ne remplacera pas le structure if impliquée mais elle
évite de compliquer l’écriture. Sa syntaxe est la suivante :
switch (Variable) {
case Valeur1:
Liste d'instructions
break;
case Valeur1:
Liste d'instructions
break;
case Valeurs...:
Liste d'instructions
break;
default:
Liste d'instructions
}
Chaque « case » sera traitée à part et le mot clé « break » sert à quitter l’instruction switch
pour ne pas passer à exécuter les autres instructions. Le bloc « default » sera exécuté dont
le cas où aucune valeur n’a été traitée dans le bloc « case ».
ATTENTION : Le mot clé « break » est obligatoire dans chaque « case » sauf dans le bloc
« default ».
3. Les boucles
Les boucles permettent d’exécuter plusieurs fois un ensemble d'instructions (appelé aussi
itération) jusqu'à ce qu'une condition ne soit plus réalisée.
Une boucle comporte un compteur qui permet d’incrémenter ou décrémenter jusqu’à l’arrêter
de la boucle lorsque le compteur dépasse une certaine valeur.
[Link] boucle for
L'instruction for permet d'exécuter plusieurs fois la même série d'instructions à un nombre
connu à l’avance. La syntaxe de la boucle for est la suivante :
17
Exemple
<html>
<head>
<title>Les boucles – La boucle for</title>
</head>
<body>
<?php
for ($i=1; $i<6; $i++) {
echo "$i<br>";
}
?>
</body>
</html>
▪ Saut inconditionnel
Dans certains cas, on peut sauter de la boucle en utilisant le mot clé « continue; ». On
l'associe généralement à une structure conditionnelle.
Exemple:
On souhaite afficher les valeurs que va prendre une variable $x allant de 1 à 10. Si la valeur
attend la valeur 7 il y aura une erreur. A l’aide de l'instruction « continue » pourra être
utilisée pour traiter cette valeur à part puis de continuer la boucle.
18
<html>
<head>
<title>Les boucles – La boucle while</title>
</head>
<body>
<?php
$x=1;
while ($x<=10) {
if ($x == 7) {
echo "division par 0 <br>";
$x++;
continue;
}
$a = 1/($x-7);
echo "$a<br>";
$x++;
}
?>
</body>
</html>
19
Exemple:
<html>
<head>
<title>Les boucles – L’instruction Break</title>
</head>
<body>
<?php
for ($x=1; $x<=10; $x++)
{
$a = $x-7;
if ($a == 0)
{
echo "division par 0 - arrêt !";
break;
}
echo "1/$a<br>";
}
?>
</body>
</html>
L'instruction do..while permet d’exécuter au moins une fois une série d'instructions. La
syntaxe de cette expression est la suivante :
do{
liste d'instructions
} while (condition réalisée) ;
20
4. Exercices d’application
Exercice 1
Question 1 : Écrire la page « [Link] » pour afficher le même résultat avec la variable PHP
de type tableau :
$tab=array("bonjour1","bonjour2","bonjour3","bonjour4","bonjour5","bonjour6");
en utilisant les variables $tab[0] et $tab[1]...
echo "<tr><td>$tab[0]</td><td>$tab[1]</td></tr>";
echo "<tr><td>$tab[2]</td><td>$tab[3]</td></tr>";
echo "<tr><td>$tab[4]</td><td>$tab[5]</td></tr>";
echo "<td>$tab[$i]</td>";
21
Matière : Technologies & Niveau : GLSI2 & BIGDATA2
Programmation WEB & IOT_SEM
Enseignant : Dr Riadh BOUSLIMI AU : 2021/2022 – Semestre 2
Objectifs :
▪ Savoir envoyer et récupérer des données depuis un formulaire ou une adresse URL,
▪ Connaitre comment récupérer les données provenant les composants : CHECKBOX,
RADIO, SELECT.
$variable1=$_GET[ʺvar1ʺ] …$variableN=$_GET[ʺvarNʺ]
22
ATTENTION : il est possible d’afficher des informations à travers les objets
graphiques d’un formulaire.
Exemple :
<INPUT TYPE=ʺTEXTʺ NAME=ʺNOMʺ VALUE=<?php echo(ʺ$nomʺ);?>>
2. La méthode POST
On souhaite créer la page web [Link] qui permettra à un étudiant de s’inscrire au
niveau de l’ISET de Jendouba. La page contient un formulaire contenant trois champs de
saisie et deux boutons(figure n°1). Lorsque l’utilisateur clique sur le bouton valider les
données sont envoyées avec la méthode (method=ʺPOSTʺ) vers l’url lui-même
[Link] et le même fichier affichera un message récapitulatif contenant les différentes
informations saisies par l’utilisateur (figure n°2).
Utiliser la fonction isset qui permet de tester si une variable est attribuée par une valeur.
23
Figure n°1
Figure n°2
3. La méthode GET
On souhaite modifier le fichier [Link] en changeant la méthode POST par GET. Quel
sera le résultat ?
24
4. Exercices d’application
Exercice n°1
Question 1 : Écrire une page HTML « [Link] » qui affiche cela :
Question 2 : Écrire une page PHP « [Link] » qui affiche toutes les valeurs qui ont été saisies
dans la page précédente.
Vous utiliserez les variables $_GET["email"], $_GET["comm"]... toutes les autres, même la
valeur du bouton sera affichée.
Exercice n°2
Question 1 : Écrire une page HTML « [Link] » qui affiche cela :
25
Question 2 : Écrire une page PHP « [Link] » qui affiche le nom et l'age saisie
précédemment.
Question 3 : Modifier la page PHP « [Link] » qui affiche le nom et l'age saisie
précédemment pour écrire :
Exercice n°4
Question 1 : Écrire une page HTML « [Link] » qui demande la saisie d’un texte (name=
« nom »).
Écrire la page PHP « [Link] » qui affiche :
Si le nom est « bouslimi », écrire :
Bravo M. Bouslimi, vous avez gagné.
Sinon, écrire :
Désolé M. ----, vous avez perdu.
Question 2 : Modifier la page précédente pour que le texte saisi soit juste même s’il est saisi
avec des majuscules (BoUsLiMi ou Bouslimi ou BOUSLIMI…).
Remarque : vous utiliserez une fonction PHP str… qui transforme une chaîne de caractères en
minuscule.
26
Matière : Technologies & Niveau : GLSI2 & BIGDATA2
Programmation WEB & IOT_SEM
Enseignant : Dr Riadh BOUSLIMI AU : 2021/2022 – Semestre 2
Objectifs :
1. SGBD MySQL
MySQL est un système de base de données gratuit et rapide, fonctionnant (entre autres)
sous Linux. Etant donné que la majorité des serveurs Web (dont le fameux serveur Apache)
fonctionnent sous Linux, MySQL est de ce fait le système de base de données le plus utilisé
avec PHP.
2. Les formats des données en MySQL
▪ Les données numériques :
Les données numériques peuvent être signées (signed) ou non signées (unsigned).
Type de Description
champ
TINYINT Valeur entière comprise entre -128 et 127
SMALLINT Valeur entière comprise entre -32 768 et 32 0767
MEDIUMINT Valeur entière comprise entre -8 388 608 et 8 388 607
INT Valeur entière comprise entre 2 147 483 648 et 2 147 483 647
BIGINT Valeur entière comprise entre -9 233 372 036 854 et
9 223 372 036 854 775 807
FLOAT Valeur réelle comprise entre -3.402823466E+38 à -
1.175494351E-38 .
DOUBLE Valeur réelle comprise entre -1.7976931348623157E+308 à -
2.2250738585072014E-308
DECIMAL Un nombre à virgule flottante.
3. PhpMyAdmin
PhpMyAdmin représente un site Web (en local) permettant de gérer le SGBD MySQL.
PhpMyAdmin permet de :
▪ créer et supprimer des bases de données.
▪ créer, modifier et supprimer des tables.
▪ éditer et ajouter des champs.
▪ insérer des données.
▪ gérer de multiples utilisateurs avec des permissions différentes.
28
29
CREATE TABLE liste (
id int NOT NULL auto_increment PRIMARY KEY,
nom varchar(50) NOT NULL,
email varchar(70) NOT NULL
)
Où tout simplement :
$con = mysqli_connect('HOSTNAME','USERNAME','PASSWORD');
Pour plus d’informations sur mysqli_connect,
mysqli_select_db('DATABASENAME', $con)
Où 'DATABASENAME' est le nom de votre base de données. Cette information s'affiche
également sur la page des détails de votre base de données.
Après avoir établi la connexion et sélectionné la base de données, vous pouvez effectuer une
demande à l'aide de PHP.
Afin de vous aider à créer votre propre chaîne de connexion, nous avons inclus un exemple
ci-dessous.
?php
//Exemple de syntaxe de connexion à la base de données pour PHP et
MySQL.
$hostname="your_hostname";
$username="your_dbusername";
$password="your_dbpassword";
$dbname="your_dbusername";
$usertable="your_tablename";
$yourfield = "your_field";
mysqli_connect($hostname,$username, $password) or
die ("html>script language='JavaScript'>
alert('Impossible de se connecter à la base de
données ! Réessayez plus tard.'),[Link](-1)/script>/html>");
mysqli_select_db($dbname);
31
// Vérifier si des enregistrements existent
$result = mysqli_query($query);
if($result){
while($row = mysqli_fetch_array($result)){
$name = $row["$yourfield"];
echo "Name: ".$name."br/>";
}
}
?>
6. Exercice d’application
1. Lancez XAMPP ;
2. Créez la base de données MySQL dont son nom est « TPMySQL » ;
3. Créez la table Etudiant ;
4. Insérez dans la table Etudiant les champs suivants :
32
4. Lorsque l’utilisateur clique sur le bouton « Valider », la page est de nouveau appelée
afin d’insérer les nouvelles données sur le nouveau étudiant dans la base de données
(figure n°2). Le bouton « Annuler » permet d’initialiser le formulaire.
Programmer le lien hypertexte « Liste des étudiants » qui permet d’accéder à la page
« [Link] ».
NB : Avant d’ajouter un étudiant, il faut d’abord s’assurer que l’utilisateur à bien saisie
les données sur l’étudiant, ensuite on test l’existence de l’étudiant dans la base de
données. S’il est existant alors vous devez le signaler à l’utilisateur à travers un message
(figure n°3).
Figure n°1
Figure n°2
33
Figure n°3
34
Figure n°4
35
[Link] d’un enregistrement
1. Lancez l’éditeur de texte « Bloc-notes » ;
2. Créez le fichier « modif_Etudiant.php » qui permet de modifier un étudiant.
Lorsque l’utilisateur clique sur le lien hypertexte « Modifier » (figure n°5) dans la page
« [Link] » la page « modif_Etudiant.php » apparaîtra avec un formulaire qui
contient les renseignement sur l’étudiant en question (figure n°6) .
Lorsque l’utilisateur clique sur le bouton « valider » la figure n°7 apparaîtra.
Figure n°5
Figure n°6
Figure n°7
36
[Link] d’un enregistrement
1. Lancez l’éditeur de texte « Bloc-notes » ;
2. Créez le fichier « suppr_Etudiant.php » qui permet de modifier un étudiant.
Lorsque l’utilisateur clique sur le lien hypertexte « Supprimer » (figure n°8) dans la page
« [Link] » la page « suppr_Etudiant.php » apparaîtra avec un message pour
indiquer que la suppression a été effectué avec succès (figure n°9) .
Figure n°8
Figure n°9
37
Correction
1 <!--
2 fichier : [Link]
3 Auteur : Riadh BOUSLIMI
4 Matière : Technologies & Programmation WEB
5 -->
6 <html>
7 <head>
8 <title>Saisie d'un nouveau étudiant</title>
9 </head>
10 <body>
11 <?php
12 if (!empty($_POST['ncin']) AND !empty($_POST['nom'])
13 AND !empty($_POST['prenom'])) {
14 //connexion
15 mysqli_connect("localhost","root","");
16 mysqli_select_db("tpmysql");
17 //test d'existance de l'étudiant
18 $requete1="select * from etudiant where NCIN='".$_POST['ncin']."'";
19 $resultat=mysqli_query($requete1);
20 if ($enreg=mysqli_fetch_array($resultat)){
21 //l'étudiant est déjà existant
22 ?>
23 <div align="center">
24 <br>L'étudiant <b><?php echo($_POST['nom']." ".$_POST['prenom']);?></b>
25 <br>est déjà existant!!!
26 <br><br><a href="[Link]">Retour</a>
27 </div>
28 <?php
29 }else {
30 //insertion du nouveau étudiant
31 $requete2="insert into etudiant
32 values('".$_POST['ncin']."','".$_POST['nom']."',
33 '".$_POST['prenom']."','".$_POST['sexe']."')";
34 mysqli_query($requete2);
35 ?>
36 <div align="center">
37 <br>Merci, l'étudiant
38 <b><?php echo($_POST['nom']." ".$_POST['prenom']);?></b>
39 <br>est bien été enregisré
40 <br><br><a href="[Link]">Retour</a>
41 </div>
42 <?php
43 }//fin du test d'existance
44 }else{?>
45 <div align="center">
46 <h3>Saisie d'un nouveau étudiant</h3>
47 <hr size="2" width="50%">
48 <!--Ici c'est le Formulaire-->
49 <form name="SaisieEtudiant" method="POST" action="[Link]">
50 <table border="1">
51 <tr>
52 <td width="35%">N°.C.I.N :</td>
53 <td width="65%"><input type="text" name="ncin"
54 value="" size="8" maxlength="8"></td>
55 </tr>
56 <tr>
57 <td width="35%">Nom :</td>
58 <td width="65%"><input type="text" name="nom" value=""
59 size="25" maxlength="25"></td>
60 </tr>
61
38
62 <tr>
63 <td width="35%">Prénom :</td>
64 <td width="65%"><input type="text" name="prenom"
65 value="" size="25" maxlength="25"></td>
66 </tr>
67 <tr>
68 <td width="35%">Sexe :</td>
69 <td width="65%">
70 <select name="sexe">
71 <option value="H">Homme</option>
72 <option value="F">Femme</option>
73 </select>
74 </td>
75 </tr>
76 </table>
77 <br>
78 <input type="submit" value="Valider">
79 <input type="reset" value="Annuler">
80 </form>
81 <a href="[Link]">Liste des étudiants</a>
82 </div>
83 <?php
84 }
85 ?>
86 </body>
87 </html>
1 <!--
2 fichier : [Link]
3 Auteur : Riadh BOUSLIMI
4 Matière : Technologies & Programmation WEB
5 -->
6 <html>
7 <head>
8 <title>Liste des étudiants</title>
9 </head>
10 <body>
11 <div align="Left">
12 <h3>Liste des étudiants</h3>
13 <hr width="50%" size="2">
14 </div>
15 <?php
16 //connexion
17 mysqli_connect("localhost","root","");
18 mysqli_select_db("tpmysql");
19 ?>
20 <?php
21 //Liste des étudiants dont le sexe est Homme
22 $requete_H="select * from etudiant where SEXE='H' order by NOM,PRENOM";
23 $resultat_H=mysqli_query($requete_H);
24 if (mysqli_num_rows($resultat_H)<>0){
25 ?>
26 <div align="Left">
27 <br>
28 <h4>Sexe : <b>Homme</b></h4>
29 <table border="1" cellpaccing="2" cellpadding="0">
30 <tr>
31 <td><b>N° C.I.N</b></td>
32 <td><b>Nom</b></td>
33 <td><b>Prénom</b></td>
34 <td><b>Sexe</b></td>
35 <td><b>Modif/Suppr</b></td>
36 </tr>
39
37 <?php
38 while ($enreg_H=mysqli_fetch_array($resultat_H)){
39 ?>
40 <tr>
41 <td><?php echo $enreg_H["NCIN"];?></td>
42 <td><?php echo $enreg_H["NOM"];?></td>
43 <td><?php echo $enreg_H["PRENOM"];?></td>
44 <td><?php echo $enreg_H["SEXE"];?></td>
45 <td>
46 <a href="modif_Etudiant.php?reference=
47 <?php echo $enreg_H["NCIN"];?>
48 ">Modifier</a>
49 <a href="suppr_Etudiant.php?reference=
50 <?php echo $enreg_H["NCIN"];?>
51 ">Supprimer</a>
52 </td>
53 </tr>
54 <?php
55 }
56 ?>
57 </table>
58 </div>
59 <?php
60 }else{
61 ?>
62 <div align="Left">
63 <h4>Sexe : <b>Homme</b></h4>
64 <hr width="50%" size="2">
65 <b> Pour le moment, il n'a aucun étudiant enregistré!!!</b>
66 <hr width="50%" size="2">
67 </div>
68 <?php
69 }
70 ?>
71 <?php
72 //Liste des étudiants dont le sexe est Femme
73 $requete_F="select * from etudiant where SEXE='F' order by NOM,PRENOM";
74 $resultat_F=mysqli_query($requete_F);
75 if (mysqli_num_rows($resultat_F)<>0){
76 ?>
77 <div align="Left">
78 <br>
79 <h4>Sexe : <b>Femme</b></h4>
80 <table border="1" cellpaccing="2" cellpadding="0">
81 <tr>
82 <td><b>N° C.I.N</b></td>
83 <td><b>Nom</b></td>
84 <td><b>Prénom</b></td>
85 <td><b>Sexe</b></td>
86 <td><b>Modif/Suppr</b></td>
87 </tr>
88 <?php
89 while ($enreg_F=mysqli_fetch_array($resultat_F)){
90 ?>
91 <tr>
92 <td><?php echo $enreg_F["NCIN"];?></td>
93 <td><?php echo $enreg_F["NOM"];?></td>
94 <td><?php echo $enreg_F["PRENOM"];?></td>
95 <td><?php echo $enreg_F["SEXE"];?></td>
96 <td>
97 <a href="modif_Etudiant.php?reference=
98 <?php echo $enreg_F["NCIN"];?>
99 ">Modifier</a>
100 <a href="suppr_Etudiant.php?reference=
101 <?php echo $enreg_F["NCIN"];?>
102 ">Supprimer</a>
40
103 </td>
104 </tr>
105 <?php
106 }
107 ?>
108 </table>
109 </div>
110 <?php
111 }else{
112 ?>
113 <div align="Left">
114 <h4>Sexe : <b>Femme</b></h4>
115 <hr width="50%" size="2">
116 <b> Pour le moment, il n'a aucune étudiante enregistrée!!!</b>
117 <hr width="50%" size="2">
118 </div>
119 <?php
120 }
121 ?>
122 </body>
123 </html>
1 <!--
2 fichier : modif_Etudiant.php
3 Auteur : Riadh BOUSLIMI
4 Matière : Technologies & Programmation WEB
5 -->
6 <html>
7 <head>
8 <title>Modification d'un étudiant</title>
9 </head>
10 <body>
11 <?php
12 //connexion
13 mysqli_connect("localhost","root","");
14 mysqli_select_db("tpmysql");
15 if (empty($_POST['ncin']) AND empty($_POST['nom'])
16 AND empty($_POST['prenom'])) {
17 //Info. sur l'étudiant
18 $requete1="select * from etudiant where NCIN='".$_GET['reference']."'";
19 $resultat=mysqli_query($requete1);
20 if ($enreg=mysqli_fetch_array($resultat)){
21 //Remplissage des renseignements sur l'étudiant en question
22 ?>
23 <div align="center">
24 <h3>Modifier un étudiant</h3>
25 <hr size="2" width="50%">
26 <form name="ModifierEtudiant" method="POST" action="modif_Etudiant.php">
27 <table border="1">
28 <tr>
29 <td width="35%">Nom :</td>
30 <td width="65%"><input type="text" name="nom"
31 value="<?php echo $enreg['NOM'];?>"
32 size="25" maxlength="25">
33 </td>
34 </tr>
35 <tr>
36 <td width="35%">Prénom :</td>
37 <td width="65%"><input type="text" name="prenom"
38 value="<?php echo $enreg['PRENOM'];?>"
39 size="25" maxlength="25">
40 </td>
41 </tr>
42 <tr>
43 <td width="35%">Sexe :</td>
44 <td width="65%">
41
45 <select name="sexe">
46 <?php if (strcmp($enreg['SEXE'],"H")==0) {?>
47 <option value="H" selected>Homme</option>
48 <?php }else{?>
49 <option value="H">Homme</option>
50 <?php }?>
51 <?php if (strcmp($enreg['SEXE'],"F")==0) {?>
52 <option value="F" selected>Femme</option>
53 <?php }else{?>
54 <option value="F">Femme</option>
55 <?php }?>
56 </select>
57 </td>
58 </tr>
59 </table>
60 <input type="hidden" name="ncin" value="<?php echo $enreg['NCIN'];?>">
61 <br>
62 <input type="submit" value="Valider">
63 <input type="reset" value="Annuler">
64 </form>
65 <a href="[Link]">Liste des étudiants</a>
66 </div>
67 <?php
68 } ?>
69 <?php
70 }else {
71 //modification de l'étudiant
72 $requete2="Update etudiant set NOM='".$_POST['nom'].
73 "',PRENOM='".$_POST['prenom'].
74 "',SEXE='".$_POST['sexe']."'
75 where NCIN='".$_POST['ncin']."'";
76 mysqli_query($requete2);
77 ?>
78 <div align="center">
79 <br>Merci, l'étudiant <b><?php echo($_POST['nom']." ".$_POST['prenom']);?></b>
80 <br>est bien été enregisré
81 <br><br><a href="[Link]">Retour</a>
82 </div>
83 <?php
84 }
85 ?>
86 </body>
87 </html>
1 <!--
2 fichier : suppr_Etudiant.php
3 Auteur : Riadh BOUSLIMI
4 Matière : Technologies & Programmation WEB
5 -->
6 <html>
7 <head>
8 <title>Suppression d'un étudiant</title>
9 </head>
10 <body>
11 <?php
12 //connexion
13 mysqli_connect("localhost","root","");
14 mysqli_select_db("tpmysql");
15 //suppression de l'étudiant
16 $requete="delete from etudiant where NCIN='".$_GET['reference']."'";
17 mysqli_query($requete);
18 ?>
19 <div align="center">
20 <br>Merci, l'étudiant au n° C.I.N <b><?php echo($_GET['reference']);?></b>
21 <br>est bien été supprimé
22 <br><br><a href="[Link]">Retour</a>
42
23 </div>
24 </body>
25 </html>
43
Exemples de PHP & MySQL
//[Link]
<?php
$nomserveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$bd="bigdata2";
// Création d'une connexion
$conn = new mysqli($nomserveur, $utilisateur,
$motdepasse,$bd);
// vérification de la connexion
if ($conn->connect_error) {
die("Echec de connexion: " . $conn->connect_error);
}
echo "Connexion avec succès";
?>
[Link]
<html>
<head>
<title>Etudiant</title>
</head>
<body>
<form method="POST" action="[Link]">
<input type="number" size="10"
name="idetud"
placeholder="Votre identifiant"><br>
<input type="text" size="10"
name="nom"
placeholder="Votre nom"><br>
<input type="text" size="10"
name="prenom"
placeholder="Votre prenom"><br>
<input type="submit" value="Enregistrer">
</form>
</body>
</html>
[Link]
<?php
include '[Link]';
$sql = "INSERT INTO `etudiant`
(`id`, `nom`, `prenom`)
VALUES ('2', 'Flen', 'Foulen');";
if ($conn->query($sql) == TRUE) {
echo "Ajout avec succès";
} else {
echo "Erreur: " . $sql . "<br>" . $conn->error;
}
$conn->close();
44
?>
[Link]
<?php
include '[Link]';
//récupération des paramètres du formulaire
$id_p = $_POST["id"];
$nom_p = $_POST["nom"];
$prenom_p = $_POST["prenom"];
// préparation de la requête
$stmt = $conn->prepare("INSERT INTO etudiant
(id, nom, prenom)
VALUES (?, ?, ?)");
$stmt->bind_param("iss", $id, $nom, $prenom);
//i - integer
//d - double
//s - string
//b - BLOB
//iss signifie :integer, string, string
$stmt->close();
$conn->close();
?>
[Link]
<?php
//récupération
$idetud = $_POST["idetud"];
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
//connexion avec la base
$cx = mysqli_connect("localhost","root","","bigdata");
//requete
$sql="INSERT INTO `etudiant` (`idetud`, `nom`, `prenom`)
VALUES ('$idetud', '$nom', '$prenom');";
$n = mysqli_query($cx,$sql);
if($n==0)
echo("Aucun ajout");
else
echo("Ajout avec succès!");
?>
45
//[Link]
<?php
include '[Link]';
$sql = "SELECT * FROM `etudiant`;";
$resultat = $conn->query($sql);
if ($resultat->num_rows > 0) {
// affichage pour chaque ligne
while($row = $resultat->fetch_assoc()) {
echo "<br>id: " . $row["id"]. " - Nom: " .
$row["nom"]. " " . $row["prenom"]. "<br>";
}
} else {
echo "0 resultats";
}
$conn->close();
?>
46
Matière : Technologies & Niveau : GLSI2 & BIGDATA2
Programmation WEB & IOT_SEM
Enseignant : Dr Riadh BOUSLIMI AU : 2021/2022 – Semestre 2
Objectifs :
Le mécanisme de sessions sous PHP est un moyen de conserver des valeurs entre plusieurs
utilisateurs.
Chaque internaute accédant à votre page web se voit assigner un "identifiant de session".
Il peut être stocké soit dans un cookie, soit propagé dans l’URL.
<?php
session_start();
echo '2. Restitution des données de session de la page 1';
echo $_SESSION['ordinateur']; // netbook-dell
echo $_SESSION['couleur']; // gris
echo $_SESSION['quantite']; // 3
echo '<a href="[Link]?' . strip_tags(SID) . '">page 1</a>';
?>
[Link]
<?php
// Session start doit être appelé avant tout autre instruction.
47
session_start();
Question 1 : Créez dans un premier temps une page ([Link]) qui est présenté comme
ci-dessous qui contient un formulaire de connexion qui postera vers la page
(traitement_connexion.php). Cette dernière testera l’identiter de l’utilisateur et elle ouvrera
une session pour l’utilisateur et affichera le menu principal ([Link]).
Question 2 : Créez une page ([Link]) qui mettra fin à la session de l’utilisateur.
48
Mini-Projet
Date Limite 15/05/2022
Espace de dépôt
Soit à représenter l’activité d’une bibliothèque disposant d’un ensemble de livres qu’elle met
à la disposition de ses abonnés.
On donne la base de données biblio implémentée sous le SGBD MySQL.
On souhaite créer une application web dynamique sécurisé qui permet de gérer :
▪ Les abonnées
▪ Les livres
▪ Les emprunts
Travail à faire
Créer les interfaces possibles pour que le bibliocataire pourra ajouter, modifier, supprimer et
consulter les abonnées, les livres et les emprunts.
NB : Le principe des sessions doit figurer dans le développement de l’application.
49
Bibliographie
[REF 1]Développer un site Web dynamique et interactif, Olivier Heurtel, ENI, 2004.
[REF 2]100 techniques pour dynamiser vos sites web, Jack-D Herrington, O'Reilly, 2006.
[REF 3]PHP et SQL, Cyril Pierre de Geyer, Guillaume Ponçon et Stéphane Mariel, Eyrolles, 2006.
[REF 4]PHP-MySQL, Van Lancker Luc, [Link] Date de
consultation : 02/09/2016.
[REF 5]Concevez votre site web avec PHP et MySQL,
[Link]
Date de consultation : 14/09/2016.
50