29 1 2MB
2020 / 2021
Programmation Web II
M. Marc TEJIOGNI Email : [email protected] Tél : 693 90 91 21 / 682 66 37 31
Programmation Web II 2020 / 2021
PLAN DU COURS OBJECTIF GENERAL ........................................................................................................................ 6 OBJECTIFS SPECIFIQUES ............................................................................................................... 6 CHAPITRE I : NOTIONS DE BASE EN PHP ................................................................................... 7 Objectif du chapitre .......................................................................................................................... 7 Objectifs spécifiques ........................................................................................................................ 7 I. Définition et principe de fonctionnement ..................................................................................... 7 II.1. Qu’est ce que PHP ? ............................................................................................................. 7 II.2. Script CGI............................................................................................................................. 7 II.3. Principe du modèle Client / Serveur..................................................................................... 9 III. Environnement de Développement Intégré (EDI) ................................................................... 10 IV. Quelques règles à respecter...................................................................................................... 10 V. Ecrire du code PHP ................................................................................................................... 10 VI. Quelques instructions usuelles en PHP .................................................................................... 11 VII. Notions de base....................................................................................................................... 12 VII.1. Les variables .................................................................................................................... 12 VII.1.1. Définition .................................................................................................................. 12 VII.1.2. Déclaration et initialisation d'une variable ............................................................... 12 VII.1.3. Les types de données ................................................................................................ 13 VII.1.4. Déterminer le type de variable ................................................................................. 15 VII.1.5. Tester le type de variable avec gettype..................................................................... 16 VII.2. Les constantes .................................................................................................................. 16 VII.2.1. Définition .................................................................................................................. 16 VII.2.2. Initialiser et afficher une constante........................................................................... 16 VII.2.3. Constantes prédéfinies .............................................................................................. 17 VII.3. Mise en forme de PHP avec HTML et CSS .................................................................... 18 VII.3.1. Définition .................................................................................................................. 18 VII.3.2. La concaténation ....................................................................................................... 18 VII.4. Les fonctions en PHP ...................................................................................................... 19 VII.4.1. Fonctions mathématiques en PHP ............................................................................ 19 VII.4.2. Fonctions de date en PHP ......................................................................................... 20 VII.4.3. Fonctions sur les chaînes de caractères .................................................................... 23 VII.4.4. Autres fonctions pratiques en PHP ........................................................................... 24 VII.4.5. Fonctions personnalisées en PHP ............................................................................. 25 VII.5. Les structures conditionnelles ......................................................................................... 26 2 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021 VII.5.1. if else ........................................................................................................................ 26 VII.5.2. if elseif else ............................................................................................................... 26 VII.5.3. switch ........................................................................................................................ 26 VII.5.4. Les opérateurs de comparaison ................................................................................ 27 VII.5.5. Les opérateurs logiques ............................................................................................ 27 VII.5.6. Quelques fonctions utiles ......................................................................................... 27 VII.6. Les boucles ...................................................................................................................... 28 VII.6.1. Boucle « for » ........................................................................................................... 28 VII.6.2. Boucle « while » ....................................................................................................... 29 VII.6.3. Boucle « do.. while » ................................................................................................ 29 Tests de connaissances ................................................................................................................... 30 CHAPITRE II : TECHNIQUES AVANCEES EN PHP ................................................................... 31 Objectif du chapitre ........................................................................................................................ 31 Objectifs spécifiques ...................................................................................................................... 31 I. Les tableaux ................................................................................................................................ 31 I.1. Les tableaux à indices numériques ...................................................................................... 32 I.2. Les tableaux associatifs ....................................................................................................... 32 I.3. Tableau multi-dimensionnelle indicé .................................................................................. 33 I.4. Boucle foreach ..................................................................................................................... 33 I.5. Trier un tableau .................................................................................................................... 34 II. Les variables superglobales ....................................................................................................... 35 II.1. Envoyer des variables dans l'url avec GET ........................................................................ 35 II.2. Envoyer des données via un formulaire avec POST .......................................................... 37 II.3. Les variables de serveur : $_SERVER ............................................................................... 37 II.4. Les sessions ........................................................................................................................ 39 II.5. Les cookies ......................................................................................................................... 41 III. Manipulation des fichiers ......................................................................................................... 43 III.1. Ouvrir et fermer un fichier ................................................................................................ 43 III.2. Afficher le contenu d'un fichier dans un navigateur ......................................................... 44 III.3. Extraire une chaîne de caractère dans un fichier............................................................... 45 III.4. Ecrire dans un fichier ........................................................................................................ 46 III.5. Vérifier l'existence d'un fichier ......................................................................................... 47 III.6. Copier et coller des fichiers .............................................................................................. 47 III.7. Renommer un fichier ........................................................................................................ 48 III.8. Supprimer un fichier ......................................................................................................... 48 Tests de connaissances ................................................................................................................... 49 CHAPITRE III : PROGRAMMATION ORIENTE OBJET (POO) EN PHP ................................... 50 3 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021 Objectif du chapitre ........................................................................................................................ 50 Objectifs spécifiques ...................................................................................................................... 50 I. Introduction à la POO ................................................................................................................. 50 I.1. Définitions ........................................................................................................................... 50 I.1.1. Les Objets ..................................................................................................................... 50 I.1.2. Les classes .................................................................................................................... 51 I.1.3. Les instances ................................................................................................................. 51 I.2. Exemple de création d’une classe ........................................................................................ 52 I.3. Le principe d'encapsulation ................................................................................................. 52 I.4. Exemple pratique : création d’une classe ............................................................................ 53 I.4.1. Syntaxe de base............................................................................................................. 53 I.4.2. Visibilité d'un attribut ou d'une méthode ...................................................................... 53 I.4.3. Création d'attributs ........................................................................................................ 54 I.4.4. Création des méthodes .................................................................................................. 54 II. Comment utiliser une classe en POO ? ..................................................................................... 55 II.1. Créer et manipuler un objet ................................................................................................ 56 II.1.1. Créer un objet .............................................................................................................. 56 II.1.2. Appeler les méthodes de l'objet ................................................................................... 56 II.1.3. Accéder à un élément depuis la classe ........................................................................ 57 II.1.4. Autres méthodes .......................................................................................................... 58 II.2. Les accesseurs et mutateurs ................................................................................................ 59 II.2.1. Accéder à un attribut : l'accesseur ............................................................................... 59 II.2.2. Modifier la valeur d'un attribut : les mutateurs ........................................................... 60 II.3. Le constructeur ................................................................................................................... 62 II.4. L'auto-chargement de classes ............................................................................................. 63 III. L'opérateur de résolution de portée .......................................................................................... 66 III.1. Les constantes de classe .................................................................................................... 66 III.2. Les attributs et méthodes statiques.................................................................................... 67 III.2.1. Les méthodes statiques............................................................................................... 67 III.2.2. Les attributs statiques ................................................................................................. 68 IV. Les exceptions.......................................................................................................................... 69 IV.1. Gestion des exceptions...................................................................................................... 69 IV.2. Des exceptions spécialisées .............................................................................................. 71 IV.3. Convertir une erreur en exception .................................................................................... 73 Tests de connaissances ................................................................................................................... 74 CHAPITRE IV : PHP ET MYSQL.................................................................................................... 75 Objectif du chapitre ........................................................................................................................ 75 4 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021 Objectifs spécifiques ...................................................................................................................... 75 I. Système de Gestion de Base de Données (SGBD) ..................................................................... 75 II. L’objet PDO (PHP Data Object) ............................................................................................... 76 III. Utilisation de l'objet PDO ........................................................................................................ 76 III.1. Chaîne de connexion (Instance PDO) ............................................................................... 77 III.2. Gestion d'erreurs éventuelles lors de l'instanciation d’un objet PDO ............................... 78 III.3. Préparation et exécution des requêtes (Requêtes préparées) ............................................ 80 III.4. Les requêtes de sélections ................................................................................................. 82 Tests de connaissances ................................................................................................................... 83
5 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021
OBJECTIF GENERAL Le cours de Programmation Web vise à donner à l’apprenant des outils et techniques lui permettant de mettre sur pied un site web ou une application web complète.
OBJECTIFS SPECIFIQUES
Définition, historique et principe de fonctionnement d’internet ; Définition des notions d’Intranet et d’Extranet Présentation du service web et des technologies associées ; Initiation au langage HTML ; Initiation au langage CSS ; Initiation au langage JavaScript ; Les bases du langage PHP ; PHP et la Programmation Orienté Objet (POO) PHP et les bases de données (MySQL) Hébergement en ligne de sites web ou applications web.
6 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021
CHAPITRE I : NOTIONS DE BASE EN PHP Objectif du chapitre Présenter de quelques éléments de base associés au langage PHP.
Objectifs spécifiques
Connaître le principe de fonctionnement du PHP; Mise en place du PHP dans une page Web Quelques instructions usuelles en PHP Maîtrisez les outils nécessaires à la mise en place d’un projet en PHP : WampServer, …. Manipulation des variables et les constantes Définition des opérations possibles sur les variables et constantes Les structures conditionnelles et itératives Les fonctions
I. Définition et principe de fonctionnement II.1. Qu’est-ce que PHP ? PHP (acronyme récursif pour PHP Hypertext Preprocessor ou Personal Home Page), est un langage de scripts libre principalement utilisé pour produire des pages web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage. Inventé par Rasmus Lerdorf, il trouvait le CGI (Common Gateway Interface) trop long, c'est pour ça qu'il a développé PHP, il a publié la première version en 1993 et 1995 selon les sites.
II.2. Script CGI Un script CGI (Common Gateway Interface, traduit en interface de passerelle commune) est un programme exécuté par le serveur web (on dit généralement « côté serveur »), permettant d'envoyer au navigateur de l'internaute un code HTML créé automatiquement par le serveur (basé par exemple sur une autre application, telle qu'un système de gestion de base de données, d'où le nom de passerelle). 7 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021
Un des principaux intérêts de l'utilisation de CGI est la possibilité de fournir des pages dynamiques, c'est-à-dire des pages personnalisées selon un choix ou une saisie de l'utilisateur. L'application la plus fréquente de cette technique repose sur l'utilisation de formulaires HTML permettant à l'utilisateur de choisir ou de saisir des données, puis de cliquer sur un bouton de soumission du formulaire, envoyant alors les données du formulaire en paramètre du script CGI. Langage de programmation des CGI Un programme CGI peut être écrit dans à peu près n'importe quel langage de programmation pourvu que celui-ci soit : Capable de lire le flux de données d'entrée ; Capable de traiter des chaînes de caractères ; Capable d'écrire sur le flux standard de sortie ; Exécutable ou interprétable par le serveur web. Les langages de programmation les plus utilisés pour l'écriture des CGI sont les suivants : Le langage Perl, particulièrement adapté à la manipulation de chaînes de caractères ; Les langages C et C++ ; Le langage Java. Principe de fonctionnement des CGI Lorsqu'une requête est envoyée au serveur, celui-ci examine l'extension du fichier demandé afin de déterminer l'action qu'il va effectuer. Ainsi, par exemple : Dans le cas d'un fichier HTML (extension .htm ou .html) : le serveur va générer des entêtes de réponse HTTP qu'il va envoyer au navigateur demandant un fichier, puis envoyer le fichier HTML. Dans le cas d'un fichier CGI écrit en Perl (extension .pl) : le serveur va exécuter l'interpréteur Perl, celui-ci va interpréter le code contenu dans le fichier portant l'extension .pl, puis envoyer les données au serveur, qui va les envoyer au navigateur, comme dans le cas d'un fichier HTML Dans le cas d'un fichier CGI écrit en langage C (extension .exe sous Windows) : le serveur va exécuter le CGI, puis envoyer vers le navigateur les données que le programme lui aura transmis. Ainsi, le rôle d'un script CGI est de recevoir des données envoyées par le serveur, de les traiter, puis de renvoyer des en-têtes de réponses et des tags HTML valides. En effet, lorsqu'un programme CGI renvoie un fichier, il doit commencer par envoyer un en-tête HTTP permettant de préciser le type de contenu envoyé au navigateur (appelé type MIME), c'est-à-dire : Dans le cas d'un fichier html, la chaîne suivante : content-type : text/html 8 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021
Dans le cas d'un fichier gif (pour faire de la création dynamique d'images par exemple, comme dans le cas d'histogrammes ou de diagrammes divers), la chaîne suivante : content-type : image/gif Dans le cas d'un fichier quicktime, la chaîne suivante : content-type : text/quicktime
II.3. Principe du modèle Client / Serveur Le Langage PHP est basé sur le principe du modèle Client / Serveur. L'environnement Client / Serveur désigne un mode de communication organisé par l'intermédiaire d'un réseau et d'une interface Web entre plusieurs ordinateurs. Cela signifie que des machines clientes (machines faisant partie du réseau) contactent un serveur, (une machine généralement très puissante en termes de capacités d'entrées-sorties) qui leur fournit des services. Lesquels services sont exploités par des programmes, appelés programmes clients, s'exécutant sur les machines clientes. De nombreux langages de programmation fonctionnent selon l’environnement Client / Serveur : notamment le PHP.
9 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021
III. Environnement de Développement Intégré (EDI) Pour éditer notre code, l'interpréter et visualiser le résultat, nous aurons besoin : Un éditeur de code PHP (Notepad++, Sublime Text, Brackets, Netbeans ...) Un serveur web qui gère PHP et MySQL, ou un serveur d'évaluation ( tel que WampServer, XAMP ou EasyPHP) Différents navigateurs pour tester le rendu de nos pages (Firefox, Chrome, Internet explorer, safari ...)
IV. Quelques règles à respecter Pour chacun de vos projets PHP en local, il faudra créer un dossier à la racine du répertoire de votre serveur Web. Exemple : « C:\wamp\www\tpweb » contenu dans WampServer sous Windows où « C:\wamp\www\ » est le répertoire racine et « tpweb » le dossier crée. Pour afficher le rendu de la page dans un navigateur, il faudra consulter lien URL de page. Exemple : http://localhost/tpweb/index.php NB : Le nom de votre répertoire ne doit pas contenir d'espaces ni de caractères spéciaux.
V. Ecrire du code PHP Pour que vos fichiers en PHP soient interprétés, il faut leur ajouter l'extension ".php". Exemple : « index.php » Pour indiquer que vous écrivez du code PHP, vous devez ajouter ces 2 balises :
10 M. Marc TEJIOGNI | [email protected] | Tél : 693 90 91 21 – 682 66 37 31
Programmation Web II 2020 / 2021
VI. Quelques instructions usuelles en PHP Afficher les informations sur la configuration de PHP « phpinfo() » permet d'afficher les informations sur la configuration de PHP.
Afficher du texte avec « echo » L'instruction « echo » permet d'afficher un élément.
Les commentaires Les commentaires permettent de vous repérer dans votre code PHP, vous pouvez l'écrire différemment selon le cas, regarder l'exemple ci-dessous :
Les caractères d'échappement Le caractère antislash (\) a de nombreuses utilisations. En premier lieu, s'il est suivi d'un caractère non alphanumérique, il ne prendra pas la signification spéciale qui y est rattachée. Cette utilisation de l'antislash comme caractère de protection s'applique à l'intérieur et à l'extérieur des classes de caractères.