Faculté Polytechnique
WEB TECHNOLOGIES (I-ILIA-011)
CHAPITRE 05 : PHP
Sidi Ahmed Mahmoudi
[Link]@[Link] 09 Mars 2021
Plan du Cours
• Introduction aux technologies de Web (28/01/21)
• Chapitre 01: Le langage HTML (22/02/21)
• Chapitre 02: Le langage CSS (02/03/21)
• Chapitre 03: Langage Javascript et framework jQuery (02/03/21)
• Chapitre 04: Le framework Bootstrap (08/03/21)
• Chapitre 05: Le langage PHP et connexion MySQL (09/03/21)
• Chapitre 06: Le Framework NodeJS (22/03/21)
• Chapitre 07: Le Framework Symfony (23/03/21)
Université de Mons Pr. Sidi Ahmed Mahmoudi Bases de données Web et Web Sémantique 2
Plan du Cours
• Introduction aux technologies de Web (28/01/21)
• Chapitre 01: Le langage HTML (22/02/21)
• Chapitre 02: Le langage CSS (02/03/21)
• Chapitre 03: Langage Javascript et framework jQuery (02/03/21)
• Chapitre 04: le framework Bootstrap (08/03/21)
• Chapitre 05: Le langage PHP et connexion MySQL (09/03/21)
• Chapitre 06: Le Framework NodeJS (22/03/21)
• Chapitre 07: Le Framework Symfony (23/03/21)
Université de Mons Pr. Sidi Ahmed Mahmoudi Bases de données Web et Web Sémantique 3
Organisation du cours
Date Type Séance Intitulé Séance Prof/Assistants
22/02/2021 (08h--12h) Cours/TP Introduction Web + HTML Sidi Mahmoudi
02/03/2021 (13h--16h) Cours/TP CSS + JavaScript + JQuery Sidi Mahmoudi
08/03/2021 (08h--12h) Cours/TP Bootstrap Sidi Mahmoudi/M. EL Adoui
09/03/2021 (13h--16h) Cours/TP PHP Sidi Mahmoudi
16/03/2021 (13h--16h) Cours/TP Développement projet Free
22/03/2021 (08h--12h) Cours/TP NodeJS A. Roukh
23/03/2021 (13h--16h) Projet Symfony M. EL Adoui
20/04/2021 (13h--16h) Projet Développement projet M. EL Adoui
27/04/2021 (13h--16h) Projet Développement projet M. EL Adoui
04/05/2021 (13h--16h) Point de contrôle Etat d’avancement projet All
Université de Mons Pr. Sidi Ahmed Mahmoudi Technolog ies de Web 4
Introduction
• PHP : Hypertext Preprocessor (proposé en 1995)
• Un langage de scripts: gestion des sites web dynamiques
• Créer des pages interactives : saisir des données, vérifier, etc.
• Transmission des données vers le serveur
• Créer des sites de diffusion, de collecte d’information, e-commerce,
rencontres, blogs, etc.
Université de Mons Sidi Ahmed Mahmoudi PHP 5
PHP
• PHP : indépendant de la plateforme utilisée (exécuté côté serveur)
• PHP : Open source et gratuit
• PHP : accéder aux base de données
• PHP : exécution sur le serveur et renvoie du code HTML au client
• Nécessité d’avoir un serveur distant ou local
• Plusieurs éléments :serveur apache, interpréteur code PHP, Base de données
MySQL, Utilitaire phpMyAdmin, etc.
• Exemple de paquetage complet : WampServer
Université de Mons Sidi Ahmed Mahmoudi PHP 6
PHP
• PHP a besoin d’un serveur Web pour fonctionner
• Les pages demandées par un client sont construites par le serveur Web en
fonction des paramètres transmis avant d’être retournés au client
Université de Mons Sidi Ahmed Mahmoudi PHP 7
Premier exemple avec PHP
<html>
<head>
<title> Exemple 1 avec PHP </title> </head>
<body>
<?php echo "Bonjour, ceci est le premier
exemple PHP";
?>
</body>
</html>
Université de Mons Sidi Ahmed Mahmoudi PHP 8
Commandes PHP
• print et echo : afficher à l’écran
• Déclaration de variable :
• Types scalaires : integer, double, float, string, boolean
• Types composés : array, object
• Constantes : avec define
• Récupérer le type : avec la fonction gettype()
• Vérifier le type : is_integer($var), is_string($var), is_array($var),
is_double($var), is_bool($var), is_object($var), etc.
Université de Mons Sidi Ahmed Mahmoudi PHP 9
Commandes PHP
Université de Mons Sidi Ahmed Mahmoudi PHP 10
Commandes PHP
• Conversion de type : avec la fonction settype()
• Vérifier l’état d’une variable : avec les fonctions isset() et empty()
• Affectation de variables
Université de Mons Sidi Ahmed Mahmoudi PHP 11
Commandes PHP
• Test d’identité: vérifie l’égalité de valeurs et de types
• Test de non identité :
• Les tableaux :
• Exemple
Université de Mons Sidi Ahmed Mahmoudi PHP 12
Commandes PHP
• Test d’identité: vérifie l’égalité de valeurs et de types
• Test de non identité :
• Les tableaux :
• Exemple
Université de Mons Sidi Ahmed Mahmoudi PHP 13
Tableaux avec PHP
• count($tab), sizeof : nombre d’éléments du tableau
• in_array($var,$tab) : vérifie si $var existe dans le tableau $tab.
• list($var1,$var2…) : transforme une liste de variables en tableau
• range($i,$j) : retourne un tableau contenant un intervalle de valeurs
• shuffle($tab) : mélange les éléments d’un tableau
• sort($tab) : trie alphanumérique les éléments du tableau
• rsort($tab) : trie alphanumérique inverse les éléments du tableau.
• implode($str,$tab), join : retournent une chaîne de caractères
contenant les éléments du tableau $tab joints par la chaîne de
jointure $str (séparateur)
• explode($delim,$str) : retourne un tableau dont les éléments
résultent du hachage de la chaîne $str par le délimiteur $delim.
• array_merge($tab1,$tab2,$tab3…) : concatène les tableaux
• array_rand($tab) : retourne un élément du tableau au hasard.
Université de Mons Sidi Ahmed Mahmoudi PHP 14
Tableaux associatifs
• Tableaux indexés par des chaînes plutôt que par des nombres :
• Pour lire valeurA :
Université de Mons Sidi Ahmed Mahmoudi PHP 15
Tableaux associatifs
• Accès aux éléments du tableau sans passer les clés :
Université de Mons Sidi Ahmed Mahmoudi PHP 16
Tableaux associatifs
• Accès simultané aux clés et aux éléments :
Université de Mons Sidi Ahmed Mahmoudi PHP 17
Tableaux associatifs avec PHP
• array_count_values($tab) : tableau contenant les valeurs du tableau $tab
comme clés et leurs fréquence comme valeur (évaluer les redondances)
• array_keys($tab) : tableau des clés du tableau associatif $tab
• array_values($tab) : tableau des valeurs du tableau associatif $tab.
• array_search($val,$tab) : clé associée à la valeur $val
• reset($tab) : place le pointeur sur le premier élément
• current($tab) : valeur de l’élément courant
• next($tab) : place le pointeur sur l’élément suivant
• prev($tab) : place le pointeur sur l’élément précédant
• each($tab) : retourne la paire clé/valeur courante et avance le pointeur
Université de Mons Sidi Ahmed Mahmoudi PHP 18
Chaînes de caractères
• int strlen(string $ch) : nombre de caractères de la chaine ch
• string strtolower(string $ch) : convertir en miniscules
• string strtoupper(string $ch) : convertir en majuscules
• string ltrim (string $ch [,string liste]) : supprime les espaces de début
• string rtrim (string $ch [,string liste]) : supprime les espaces de fin
• string trim (string $ch [,string liste]) : supprime les espaces situés en début
et en fin
• string addslashes (string $ch): ajouter le caractère d’échappement
• stripslaches (): retirer le caractère d’échappement
Université de Mons Sidi Ahmed Mahmoudi PHP 19
Fonctions
• Pas besoin de spécifier le type des paramètres
• Pas besoin de respecter le nombre de paramètres lors de l’appel de fonction
Université de Mons Sidi Ahmed Mahmoudi PHP 20
Exemple de fonction
• Fonction : écrire un texte en gras en spécifiant la couleur et taille de texte
[Link]
[Link]
Université de Mons Sidi Ahmed Mahmoudi PHP 21
Variables globales et statiques
• global : travailler sur une variable de portée globale
• static: conserver la valeur d’une variable locale à une fonction
• $GLOBALS[ ]: permet d’accéder aux variables globales du script
Université de Mons Sidi Ahmed Mahmoudi PHP 22
Opérateur conditionnel
• syntaxe avec renvoi: (condition)?(expression1): (expression2);
• Si la condition est vrai, on renvoi vers expression1 sinon expression 2
Université de Mons Sidi Ahmed Mahmoudi PHP 23
Structures de contrôle
Université de Mons Sidi Ahmed Mahmoudi PHP 24
Structures de contrôle
Université de Mons Sidi Ahmed Mahmoudi PHP 25
Lecture et écriture d’un fichier texte
Université de Mons Sidi Ahmed Mahmoudi PHP 26
Classes et programmation orienté objet
• syntaxe : class
• Modes : public, protected, private
Université de Mons Sidi Ahmed Mahmoudi PHP 27
Classes et programmation orienté objet
• instanceof : vérifier si un objet est une instance d’une classe
if($objet instanceof NomClasse)
• Constructeur :avec __construct(. . .)
• Destructeur : avec __destruct()
• Héritage : avec le mot clé extends
class ClasseDerivée extends ClasseHéritée
• Héritage multiple : interdit avec PHP
Université de Mons Sidi Ahmed Mahmoudi PHP 28
Classes et programmation orienté objet
Université de Mons Sidi Ahmed Mahmoudi PHP 29
Sessions
• Session : fichier conservé sur le serveur et propre à chaque personne se
connectant sur le site
• Session automatiquement détruite en quittant le site
• Session : tableau associatif pour stocker toute valeur propre à l’utilisateur
• Transmettre les valeur d’une page à l’autre (même site)
Université de Mons Sidi Ahmed Mahmoudi PHP 30
Sessions
• Prenons l’exemple présent dans la page [Link]
• Si la page [Link] contient un bouton qui envoie vers la page [Link] :
Université de Mons Sidi Ahmed Mahmoudi PHP 31
Formulaires avec PHP
• Champs du formulaire accessibles à travers les tableaux associatifs
• Les clés : valeurs des attributs name des champs de formulaire
• Le tableau associatif $_POST contient toutes les données transmises après
validation côté client
• La valeur de l’attribut name devient clef du tableau associatif $_POST[]
Université de Mons Sidi Ahmed Mahmoudi PHP 32
Formulaires avec PHP
[Link]
Université de Mons Sidi Ahmed Mahmoudi PHP 33
Formulaires avec PHP
[Link]
Université de Mons Sidi Ahmed Mahmoudi PHP 34
Formulaires avec PHP
Pour récupérer les mots de passe
Il faut le code PHP suivant:
Liste boutons radio
Récupération PHP :
Université de Mons Sidi Ahmed Mahmoudi PHP 35
Formulaires avec PHP
Choix multiples
Récupération PHP :
L’attribut name doit être un tableau
Université de Mons Sidi Ahmed Mahmoudi PHP 36
Contrôle et vérification des données
• Pour les champs text, textarea et password
• Pour les champs radio, bouton, checkbox et selected
• Suppression des espaces (avant et après)
Vérifier le format de mot de passe (entre 4 et 8 caractères, lettres et chiffres)
Université de Mons Sidi Ahmed Mahmoudi PHP 37
Contrôle et vérification des données
• Vérifier la validité d’un numéro de téléphone
• Vérifier la validité d’une adresse mail
[Link]
Université de Mons Sidi Ahmed Mahmoudi PHP 38
Redirection de page
• Appeler une page PHP sans appuyer sur un bouton : fonction header()
Université de Mons Sidi Ahmed Mahmoudi PHP 39
Téléchargement d’images et de fichiers
• Il ne faudra pas oublier : enctype=« multipart/form-data »
$_FILES['fichier']['name'] : nom et adresse originales du fichier disque
$_FILES['fichier']['type'] : type du fichier
$_FILES['fichier']['size'] : taille du fichier en octets
$_FILES['fichier']['tmp_name'] : nom et adresse du fichier temporaire stocké
sur le serveur
$_FILES['fichier']['error'] : code erreur associé au téléchargement
Université de Mons Sidi Ahmed Mahmoudi PHP 40
Téléchargement d’images et de fichiers
Université de Mons Sidi Ahmed Mahmoudi PHP 41
Enregistrement d’un fichier temporaire
Université de Mons Sidi Ahmed Mahmoudi PHP 42
TP N° 03 : PHP
• En séance du 09/03/2021 : les trois parties
• A faire (par groupe) d’ici la prochaine séance (16/03/2021):
➢ Exercice 3: Réaliser la partie 4 « connexion aux BDs Web » du TP 3
(fortement conseillée)
• A remettre : captures d’écran: résultat de la partie 4 pour le 16/03
Université de Mons Sidi Ahmed Mahmoudi PHP 43
THANK YOU
Université de Mons Sidi Ahmed Mahmoudi PHP 44