Cours Programmation Langage PHP php.doc SOMMAIRE 1.GÉNÉRALITÉS-----------------
Cours Programmation Langage PHP php.doc SOMMAIRE 1.GÉNÉRALITÉS----------------------------------------------------------------------------------------------------------------5 1.ORIGINES DE PHP........................................................................................................................................................................5 2.BIBLIOTHÈQUES INTÉGRÉES.............................................................................................................................................................5 3.SGBD SUPPORTÉS PAR PHP...........................................................................................................................................................5 4.L'INTERPRÉTATION DU CODE PAR LE SERVEUR.....................................................................................................................................6 5.IMPLANTATION AU SEIN DU CODE HTML.........................................................................................................................................6 6.UN EXEMPLE DE SCRIPT SIMPLE........................................................................................................................................................6 7.L'INTERPRÉTATION DU CODE............................................................................................................................................................7 8.LES COMMENTAIRES.......................................................................................................................................................................7 9.TYPOLOGIE...................................................................................................................................................................................7 2.LES VARIABLES--------------------------------------------------------------------------------------------------------------8 10.NOMMAGE DES VARIABLES............................................................................................................................................................8 11.LES VARIABLES SCALAIRES............................................................................................................................................................8 12.LA PORTÉE (VISIBILITÉ) DES VARIABLES..........................................................................................................................................9 13.LES VARIABLES ISSUES DE FORMULAIRES.......................................................................................................................................10 14.LES CONSTANTES DÉFINIES..........................................................................................................................................................10 3.LES OPÉRATEURS---------------------------------------------------------------------------------------------------------11 15.LES OPÉRATEURS DE CALCUL.......................................................................................................................................................11 16.LES OPÉRATEURS D'ASSIGNATION..................................................................................................................................................11 17.LES OPÉRATEURS D'INCRÉMENTATION............................................................................................................................................12 18.LES OPÉRATEURS DE COMPARAISON..............................................................................................................................................12 19.LES OPÉRATEURS LOGIQUES (BOOLÉENS).......................................................................................................................................12 20.LES OPÉRATEURS BITWISE...........................................................................................................................................................13 21.AUTRES OPÉRATEURS.................................................................................................................................................................13 22.LES PRIORITÉS DES OPÉRATEURS...................................................................................................................................................14 4.LES STRUCTURES DE CONTRÔLES---------------------------------------------------------------------------------15 23.LA NOTION DE BLOC...................................................................................................................................................................15 24.LA STRUCTURE CONDITIONNELLE..................................................................................................................................................15 24.1.L'instruction if................................................................................................................................................................15 24.2.L'instruction if ... else....................................................................................................................................................16 24.3.L'instruction if ... elseif ... else.......................................................................................................................................16 24.4.L’opérateur ternaire (une façon plus courte de faire un test).......................................................................................16 24.5.L'instruction switch........................................................................................................................................................17 25.LES BOUCLES............................................................................................................................................................................17 25.1.L'instruction while.........................................................................................................................................................17 25.2.L'instruction do..while...................................................................................................................................................18 25.3.L’instruction for.............................................................................................................................................................18 26.SAUT INCONDITIONNEL CONTINUE.................................................................................................................................................19 27.ARRÊT INCONDITIONNEL BREAK...................................................................................................................................................20 28.ARRÊT D'EXÉCUTION DU SCRIPT PAR EXIT......................................................................................................................................20 5.LES TABLEAUX-------------------------------------------------------------------------------------------------------------21 29.LES VARIABLES TABLEAUX..........................................................................................................................................................21 30.LES VARIABLES DES TABLEAUX ASSOCIATIFS..................................................................................................................................21 6.LES FONCTIONS------------------------------------------------------------------------------------------------------------22 31.LA NOTION DE FONCTION............................................................................................................................................................22 32.LA DÉCLARATION D'UNE FONCTION...............................................................................................................................................22 33.APPEL DE FONCTION...................................................................................................................................................................23 34.LES ARGUMENTS D'UNE FONCTION................................................................................................................................................23 35.TRAVAILLER SUR DES VARIABLES DANS LES FONCTIONS....................................................................................................................23 36.RENVOI D'UNE VALEUR PAR UNE FONCTION....................................................................................................................................23 37.PASSAGE D’ARGUMENT PAR RÉFÉRENCE.........................................................................................................................................24 38.VALEUR PAR DÉFAUT DES ARGUMENTS..........................................................................................................................................24 39.LA FONCTION INCLUDE...............................................................................................................................................................25 40.LA FONCTION EMPTY..................................................................................................................................................................25 41.LA FONCTION ISSET....................................................................................................................................................................25 42.LA FONCTION UNSET..................................................................................................................................................................25 ESAT/DMSI/PROA/WGR Page 1 sur137 jj/10/OO Cours Programmation Langage PHP php.doc 7.LA GESTION DES TABLEAUX------------------------------------------------------------------------------------------26 43.ARRAY.....................................................................................................................................................................................26 44.IS_ARRAY.................................................................................................................................................................................26 45.EACH.......................................................................................................................................................................................26 46.LIST.........................................................................................................................................................................................27 47.COUNT.....................................................................................................................................................................................28 48.SIZEOF .....................................................................................................................................................................................28 49.CURRENT..................................................................................................................................................................................28 50.POS..........................................................................................................................................................................................28 51.NEXT........................................................................................................................................................................................28 52.PREV........................................................................................................................................................................................28 53.RESET.......................................................................................................................................................................................28 54.END.........................................................................................................................................................................................29 55.KEY.........................................................................................................................................................................................29 56.SORT........................................................................................................................................................................................29 57.ASORT......................................................................................................................................................................................30 58.ARSORT....................................................................................................................................................................................30 59.RSORT......................................................................................................................................................................................31 60.KSORT......................................................................................................................................................................................31 61.USORT, UKSORT ET UASORT..........................................................................................................................................................32 62.EXTRACT..................................................................................................................................................................................33 63.RANGE.....................................................................................................................................................................................33 64.SHUFFLE...................................................................................................................................................................................34 65.COMPACT..................................................................................................................................................................................34 66.AUTRES FONCTIONS SUR LES TABLEAUX SOUS PHP4........................................................................................................................34 8.LES CHAÎNES DE CARACTÈRES--------------------------------------------------------------------------------------35 67.AFFICHAGE D’UNE CHAÎNE DE CARACTÈRES...................................................................................................................................35 68.INITIALISATION ET CONCATÉNATION..............................................................................................................................................35 69.TRAITEMENT DES CHAÎNES DE CARACTÈRES....................................................................................................................................36 69.1.addslashes......................................................................................................................................................................39 69.2.chr..................................................................................................................................................................................39 69.3.crypt...............................................................................................................................................................................39 69.4.ereg................................................................................................................................................................................40 69.5.ereg_replace..................................................................................................................................................................40 69.6.explode...........................................................................................................................................................................40 69.7.implode..........................................................................................................................................................................41 69.8.nl2br...............................................................................................................................................................................41 69.9.ord..................................................................................................................................................................................41 69.10.parse_str......................................................................................................................................................................41 69.11.printf............................................................................................................................................................................42 69.12.rawurldecode...............................................................................................................................................................44 69.13.rawurlencode...............................................................................................................................................................44 69.14.strchr............................................................................................................................................................................44 69.15.strcspn..........................................................................................................................................................................44 69.16.strip_tags.....................................................................................................................................................................45 69.17.strpos...........................................................................................................................................................................45 69.18.strrchr..........................................................................................................................................................................45 69.19.strrpos..........................................................................................................................................................................45 69.20.strspn...........................................................................................................................................................................46 69.21.strstr.............................................................................................................................................................................46 69.22.strtok............................................................................................................................................................................46 69.23.strtr..............................................................................................................................................................................47 69.24.substr...........................................................................................................................................................................47 69.25.substr_replace.............................................................................................................................................................47 9.LA GESTION DES DATES------------------------------------------------------------------------------------------------48 70.CALCULS DE DURÉES..................................................................................................................................................................48 71.OPÉRATIONS SUR LES DATES........................................................................................................................................................48 71.1.time................................................................................................................................................................................48 71.2.mktime............................................................................................................................................................................48 71.3.gmmktime.......................................................................................................................................................................48 71.4.checkdate.......................................................................................................................................................................48 72.CONVERSIONS DE DATES.............................................................................................................................................................49 ESAT/DMSI/PROA/WGR Page 2 sur137 jj/10/OO Cours Programmation Langage PHP php.doc 72.1.date................................................................................................................................................................................49 72.2.getdate...........................................................................................................................................................................50 72.3.strftime...........................................................................................................................................................................50 73.DÉTERMINATION DE LA DATE DE DERNIÈRE MODIFICATION D’UN SCRIPT..............................................................................................50 74.CONVERSION DES DATES AUX FORMATS MYSQL...........................................................................................................................51 75.EXERCICE PRATIQUE...................................................................................................................................................................52 10.LES OBJETS-----------------------------------------------------------------------------------------------------------------55 76.CRÉATION D’UN OBJET...............................................................................................................................................................55 77.LES PROPRIÉTÉS D’UN OBJET........................................................................................................................................................56 78.LES MÉTHODES D’UN OBJET.........................................................................................................................................................57 79.L’HÉRITAGE..............................................................................................................................................................................59 80.EXERCICE PRATIQUE...................................................................................................................................................................61 11.LES FORMULAIRES------------------------------------------------------------------------------------------------------62 81.LES VARIABLES PHP.................................................................................................................................................................62 82.LES ÉLÉMENTS SELECT MULTIPLES...........................................................................................................................................64 83.LES CHAMPS D’UN FORMULAIRE DANS UN TABLEAU ASSOCIATIF........................................................................................................65 84.ECHANGES CLIENT/SERVEUR........................................................................................................................................................67 85.COMBINAISON DE CODES HTML ET PHP....................................................................................................................................67 12.LES FICHIERS--------------------------------------------------------------------------------------------------------------69 86.STRUCTURE D’UN FICHIER POUR PHP...........................................................................................................................................69 87.LIRE ET ÉCRIRE DANS UN FICHIER ................................................................................................................................................69 88.OUVERTURE D’UN FICHIER .........................................................................................................................................................69 89.FERMETURE D’UN FICHIER ..........................................................................................................................................................70 90.ACCÈS AUX FICHIERS..................................................................................................................................................................70 91.ACCÈS AUX RÉPERTOIRES............................................................................................................................................................71 92.LIRE UN FICHIER DÉFINI PAR UNE URL.........................................................................................................................................73 93.EXEMPLES DE TRAITEMENTS SUR LES FICHIERS................................................................................................................................74 94.LA FONCTION POPEN...................................................................................................................................................................75 95.PROBLÈMES POSÉS PAR L’USAGE DE FICHIERS PLATS........................................................................................................................75 13.LES BASES DE DONNÉES-----------------------------------------------------------------------------------------------76 96.ARCHITECTURE D’UNE BASE DE DONNÉES WEB..............................................................................................................................76 97.STRUCTURE DE L’INSTALLATION DE MYSQL................................................................................................................................77 98.LES PRINCIPALES INSTRUCTIONS SQL...........................................................................................................................................77 98.1.SELECT.........................................................................................................................................................................77 98.2.INSERT..........................................................................................................................................................................79 98.3.UPDATE........................................................................................................................................................................79 98.4.DELETE.........................................................................................................................................................................79 98.5.ALTER TABLE...............................................................................................................................................................79 98.6.DROP TABLE................................................................................................................................................................80 98.7.DROP DATABASE........................................................................................................................................................80 99.COMPATIBILITÉ AVEC LES STANDARDS...........................................................................................................................................81 99.1.Extensions MySQL à la norme ANSI SQL 92................................................................................................................81 99.2.Fonctionnalités manquantes..........................................................................................................................................83 100.PROGRAMMATION MYSQL......................................................................................................................................................87 100.1.Syntaxe des chaînes et nombres...................................................................................................................................87 100.2.Types des colonnes et espaces mémoire requis...........................................................................................................87 101.CONNEXION ET ACCÈS À LA BASE DE DONNÉES MYSQL...............................................................................................................89 102.CRÉER ET SÉLECTIONNER UNE BASE DE DONNÉES MYSQL............................................................................................................89 103.FONCTIONS D ‘ACCÈS À MYSQL..............................................................................................................................................90 103.1.mysql_connect.............................................................................................................................................................93 103.2.mysql_close..................................................................................................................................................................93 103.3.mysql_select_db...........................................................................................................................................................94 103.4.mysql_error.................................................................................................................................................................94 103.5.mysql_query.................................................................................................................................................................95 103.6.mysql_fetch_array.......................................................................................................................................................96 104.EXERCICE PRATIQUE.................................................................................................................................................................97 105.MÉTHODES D’ACCÈS À MYSQL PAR PROGRAMMATION OBJET......................................................................................................100 14.FONCTIONNALITÉS INTERNET------------------------------------------------------------------------------------107 106.LE COURRIER ÉLECTRONIQUE...................................................................................................................................................107 ESAT/DMSI/PROA/WGR Page 3 sur137 jj/10/OO Cours Programmation Langage PHP php.doc 106.1.mail............................................................................................................................................................................107 107.LE « FILE UPLOAD »..............................................................................................................................................................108 108.LE TRAITEMENT DES URL......................................................................................................................................................109 108.1.Codage des URL........................................................................................................................................................109 108.2.urlencode...................................................................................................................................................................109 108.3.urldecode...................................................................................................................................................................110 108.4.parse_url....................................................................................................................................................................110 109.LES MÉTHODES DE GESTION DU CONTEXTE APPLICATIF.................................................................................................................111 109.1.Le contexte applicatif.................................................................................................................................................111 109.2.Les différentes méthodes de gestion..........................................................................................................................111 109.2.1.URL longue..........................................................................................................................................................................111 109.2.2.Variables cachées..................................................................................................................................................................112 109.2.3.Cookies.................................................................................................................................................................................112 109.2.4.Variables de session..............................................................................................................................................................114 109.2.5.Base de données....................................................................................................................................................................117 15.IMPLÉMENTER UNE AUTHENTIFICATION AVEC PHP ET MYSQL------------------------------------118 110.IMPLÉMENTER UN CONTRÔLE D’ACCÈS.......................................................................................................................................118 110.1.Enregistrement des mots de passe.............................................................................................................................119 110.2.Exercice pratique.......................................................................................................................................................121 110.3.Protéger plusieurs pages...........................................................................................................................................122 110.4.Utiliser l’authentification de base dans PHP............................................................................................................122 110.5.Utiliser l’authentification de base avec les fichiers .htaccess d’Apache..................................................................124 110.6.Utiliser l’authentification mod_auth_mysql..............................................................................................................126 111.NOTIONS DE TRANSACTIONS SÉCURISÉES SSL............................................................................................................................127 111.1.Utilisation de SSL......................................................................................................................................................128 111.2.Processus...................................................................................................................................................................129 111.3.Fonctionnement.........................................................................................................................................................129 111.4.Certificats..................................................................................................................................................................130 111.5.Installation de SSL.....................................................................................................................................................130 16.AUTRES FONCTIONNALITÉS OFFERTES PAR PHP---------------------------------------------------------131 112.LA SÉRIALISATION.................................................................................................................................................................131 113.CHARGEMENT DYNAMIQUE D’EXTENSIONS SOUS WINDOWS..........................................................................................................132 113.1.Liste des extensions chargées....................................................................................................................................134 17.INSTALLATION D’APACHE, PHP ET MYSQL------------------------------------------------------------------135 114.TÉLÉCHARGER LES SOURCES....................................................................................................................................................135 115.INSTALLER APACHE ET PHP...................................................................................................................................................135 116.PREMIER LANCEMENT.............................................................................................................................................................136 18.BIBLIOGRAPHIE---------------------------------------------------------------------------------------------------------137 ESAT/DMSI/PROA/WGR Page 4 sur137 jj/10/OO Cours Programmation Langage PHP php.doc 1. Généralités PHP (Personal Home Page) est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La syntaxe du langage provient de celles du langage C, du Perl et de Java. Ses principaux atouts sont: • La gratuité et la disponibilité du code source (PHP3 est distribué sous licence GNU GPL). • La simplicité d'écriture de scripts. • la possibilité d'inclure le script PHP au sein d'une page HTML (contrairement aux scripts CGI, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en langage HTML). • La simplicité d'interfaçage avec des bases de données (de nombreux SGBD sont supportés, mais le plus utilisé avec ce langage est MySQL, un SGBD gratuit sur les plates-formes Unix et Linux, mais payant sous Windows). • L'intégration au sein de nombreux serveurs Web (Apache, Microsoft IIS, ...). PHP est très efficace. Les tests de performances publiés par Zend Technologies (http://www.zend.com) montrent que PHP dépasse tous ses concurrents. 1. Origines de PHP Le langage PHP a été mis au point au début d'automne 1994 par Rasmus Lerdorf. Ce langage de script lui permettait de conserver la trace des utilisateurs venant consulter son CV sur son site, grâce à l'accès à une base de données par l'intermédiaire de requêtes SQL. Ainsi, étant donné que de nombreux internautes lui demandèrent ce programme, Rasmus Lerdorf mit en ligne en 1995 la première version de ce programme qu'il baptisa Personal Sommaire Page Tools, puis Personal Home Page v1.0 (traduisez page personnelle version 1.0). Etant donné le succès de PHP 1.0, Rasmus Lerdorf décida d'améliorer ce langage en y intégrant des structures plus avancées telles que des boucles, des structures conditionnelles, et y intégra un package permettant d'interpréter les formulaires qu'il avait développé (FI, Form Interpreter) ainsi que le support de mSQL. C'est de cette façon que la version 2 du langage, baptisée pour l'occasion PHP/FI version 2, vit le jour durant l'été 1995. Il fut rapidement utilisé sur de nombreux sites (15000 fin 1996, puis 50000 en milieu d'année 1997). A partir de 1997, Zeev Suraski et Andi Gurmans rejoignirent Rasmus pour former une équipe de programmeurs afin de mettre au point PHP 3 (Stig Bakken, Shane Caraveo et Jim Winstead les rejoignirent par la suite) nouvelle abréviation signifiant « Hypertext Preprocessor ». C'est ainsi que la version 3.0 de PHP fut disponible le 6 juin 1998. A la fin de l'année 1999, une version bêta de PHP, baptisée PHP4 est apparue... 2. Bibliothèques intégrées Comme PHP a été conçu pour être utilisé sur le Web, il possède plusieurs fonctions intégrées permettant d’effectuer la plupart des tâches en rapport avec le Web. Vous pouvez ainsi générer des images GIF en temps réel, vous connecter à d’autres services réseaux, envoyer des e-mails, travailler avec les cookies, et générer des documents PDF. Le code source de PHP est disponible gratuitement. Contrairement aux produits commerciaux, dont les sources ne sont pas distribuées, vous avez tout à fait la possibilité de modifier ce langage, ou d’y ajouter de nouvelles caractéristiques. Des patchs correctifs sont distribués par les concepteurs, il est donc inutile de s’inquiéter de la perennité du support ou du développement de PHP. 3. SGBD supportés par Php Php permet un interfaçage simple avec de nombreux SGBD. La version 3 du langage supporte les SGBD suivants : Adabas D ; Dbase ; MS SQL Server ; FilePro ; Informix ; InterBase ; mSQL ; Openlink ODBC ; iODBC ; MySQL ; Oracle Database ; PostgreSQL ; Solid ; Sybase ; Sybade-DB ; Velocis ; Unix dbm ; IBM DB2 ; Empress. La version 4 supporte en plus : Ingres II ; Oracle-oci7 ; Oracle-oci8 ; unixODBC ; DBMaker ; Berkeley DB3. ESAT/DMSI/PROA/WGR Page 5 sur137 jj/10/OO Cours Programmation Langage PHP php.doc 4. L'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et stocké sur le serveur. Ce fichier doit avoir l'extension ".php3" pour pouvoir être interprété par le serveur! Ainsi, lorsqu'un navigateur (le client) désire accéder à une page dynamique réalisé en php3: • le serveur reconnaît qu'il s'agit d'un fichier php3. • il lit le fichier php3. • Dès que le serveur rencontre une balise indiquant que les lignes suivantes sont du code php3, il "passe" en mode php3, ce qui signifie qu'il ne lit plus les instructions: il les exécute! • Lorsque le serveur rencontre une instruction, il la transmet à l'interpréteur. • L'interpréteur exécute l'instruction puis envoie les sorties éventuelles vers le navigateur. • A la fin du script, le serveur transmet le résultat au client (le navigateur). Un script PHP est interprété par le serveur, les uploads/Litterature/ php-pdf.pdf
Documents similaires
-
160
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 08, 2023
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.8555MB