Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Copyright © 2009 Micro Application
20-22, rue des Petits-Hôtels
75010 PARIS
1
re
Edition - Mars 2009
Auteur Jean CARFANTAN
Toute représentation ou reproduction, intégrale ou partielle, faite sans le
consentement de MICRO APPLICATION est illicite (article L122-4 du code de
la propriété intellectuelle).
Cette représentation ou reproduction illicite, par quelque procédé que ce
soit, constituerait une contrefaçon sanctionnée par les articles L335-2 et sui-
vants du code de la propriété intellectuelle.
Le code de la propriété intellectuelle n’autorise aux termes de l’article
L122-5 que les reproductions strictement destinées à l’usage privé et non
destinées à l’utilisation collective d’une part, et d’autre part, que les analy-
ses et courtes citations dans un but d’exemple et d’illustration.
Avertissement
Les informations contenues dans cet ouvrage sont données à titre indicatif et
aux utilisateurs
n’ont aucun caractère exhaustif voire certain. A titre d’exemple non limitatif,
cet ouvrage peut vous proposer une ou plusieurs adresses de sites Web qui
ne seront plus d’actualité ou dont le contenu aura changé au moment où vous
en prendrez connaissance.
Aussi, ces informations ne sauraient engager la responsabilité de l’Editeur. La
société MICRO APPLICATION ne pourra être tenue responsable de toute omis-
sion, erreur ou lacune qui aurait pu se glisser dans ce produit ainsi que des
conséquences, quelles qu’elles soient, qui résulteraient des informations et
indications fournies ainsi que de leur utilisation.
Tous les produits cités dans cet ouvrage sont protégés, et les marques dépo-
Met l’accent sur un point important, souvent d’ordre technique,
qu’il ne faut négliger à aucun prix.
Propose conseils et trucs pratiques.
Conventions typographiques
Afin de faciliter la compréhension des techniques décrites, nous avons
adopté les conventions typographiques suivantes :
¶ Gras :
menu, commande, boîte de dialogue, bouton, onglet.
¶ Italique : zone de texte, liste déroulante, case à cocher, bouton radio.
¶ Police bâton : touche, instruction, listing, texte à saisir.
¶ ✂ : indique un retour ligne volontaire dû aux contraintes de la mise en
page.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
1
Introduction ...................................................... 17
1.1. Naissance de ce langage ........................................ 18
1.2. Evolution du langage ............................................ 18
1.3. Intérêt de ce langage ............................................ 19
La liberté ........................................... 19
La portabilité ........................................ 20
La facilité ........................................... 21
Un peu d’histoire ..................................... 21
1.4. Fonctionnement . . ............................................... 22
1.5. Des chiffres. ..................................................... 23
2
Ma première page PHP ...................................... 25
Les opérateurs unaires ................................ 71
Les opérateurs logiques ............................... 72
Priorité des opérateurs ................................ 72
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Les opérateurs de chaîne de caractères ................... 73
3.3. Les structures de contrôle ...................................... 74
Les tests ........................................... 74
3.4. Les boucles ..................................................... 77
La boucle while ...................................... 78
La boucle do while ................................... 79
La boucle for ........................................ 80
Foreach ........................................... 82
Break et continue .................................... 84
3.5. Les fonctions de PHP ........................................... 85
Chaînes de caractères ................................ 86
Variables ........................................... 91
Date et heure ....................................... 91
Mathématiques ...................................... 95
3.6. Les fonctions .................................................... 97
Le rôle de la fonction .................................. 97
La portée d’une variable dans une fonction ................. 101
Les fonctions imbriquées ............................... 101
Les fonctions récursives ............................... 102
Afficher vos date et heure locales ........................ 103
3.7. Récapitulatif pour votre application . . ........................... 105
4
MySQL en action ............................................... 107
4.1. Le fichier face à la base de données ............................ 108
4.2. Conception de l’application du club . ........................... 108
4.3. Création d’une table ............................................. 109
Le constructeur et le destructeur ......................... 168
6
L’internaute est d’abord une personne ............... 171
6.1. L’authentification ................................................ 172
Le processus ....................................... 175
La première authentification ............................ 176
La vérification de l’identité de l’internaute .................. 178
Le cookie .......................................... 179
La conservation des données personnelles ................. 183
6.2. Le tableau de bord du membre .................................. 184
Modifier ou supprimer un profil .......................... 185
6.3. Le tableau de bord d’administration du site ..................... 190
L’accès restreint d’un répertoire avec .htaccess ............. 191
Le tableau de bord ................................... 192
6.4. Des aménagements dans l’application . . ....................... 198
6.5. En-têtes HTTP et variables globales ............................ 201
En-têtes HTTP ...................................... 201
Variables PHP ....................................... 204
Variable d’environnement .............................. 205
6.6. Récapitulation . . ................................................. 207
7
Des algorithmes, des outils et des fonctions ....... 209
7.1. Tableaux ......................................................... 210
Types d’extraction .................................... 212
Le pointeur ......................................... 213
Letri .............................................. 213
7.2. Calendriers, dates et autres agendas . . ......................... 218
Durée après une date ou avant une date ................... 218
Affichage d’un calendrier ............................... 219
Un agenda à jour ..................................... 223
8.2. Les expressions rationnelles .................................... 301
La méthode ......................................... 301
POSIX ............................................. 302
Les fonctions compatibles Perl .......................... 307
8.3. Conclusion ...................................................... 319
9
Parsez-vous XML ? ........................................... 321
9.1. Un peu d’histoire... . ............................................. 322
9.2. Le fichier XML ................................................... 323
L’espace de nommage ................................ 323
Les éléments et les attributs ............................ 323
9.3. La DTD .......................................................... 326
Les différents types de déclarations ...................... 326
9.4. Le XSLT .......................................................... 328
L’espace de nommage ................................ 328
La feuille de style .................................... 329
Les modèles ........................................ 330
9.5. Le fichier PHP ................................................... 332
9.6. Magasin électronique en XML ................................... 332
La conception de la boutique ............................ 333
Création du fichier XML ................................ 333
Création d’un nouveau fichier CSV à partir d’un fichier XSLT .... 335
Le fichier XSLT de la boutique ........................... 336
Le fichier PHP de la boutique ........................... 339
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
9.7. SimpleXML ...................................................... 340
9.8. Conclusion ...................................................... 342
10
Les frameworks ou cadriciels PHP ..................... 345
10.1. Une méthodologie de travail . ................................... 347
13
PHP 6 en ligne de mire ...................................... 379
13.1. Unicode ......................................................... 380
13.2. Le paramètre Register Globals n’est plus disponible ........... 381
13.3. Les Magic Quotes sont retirées ................................. 382
13.4. Le Safe Mode n’existe plus ...................................... 382
13.5. Utiliser Freetype 2 et GD 2 ...................................... 383
13.6. Plus de HTTP_*_VARS ........................................... 383
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
13.7. Les extensions in et out ......................................... 383
13.8. Les ajouts ....................................................... 383
14
Annexe ............................................................. 387
14.1. PHP .............................................................. 388
PHP Hypertext Preprocessor ........................... 388
PHP Builder, the Resource for PHP developers .............. 389
PHP Index, la Passerelle française des technologies PHP ..... 389
Nexen ............................................. 390
PHP Facile ......................................... 391
ASP-PHP.NET ...................................... 391
PHP France ........................................ 392
PHP Heaven ........................................ 393
AFUP ............................................. 393
14.2. MySQL .......................................................... 395
MySQL ............................................ 395
Nexen ............................................. 396
14.3. Autres ........................................................... 396
Apache ............................................ 396
Easyphp ........................................... 397
14.4. Outils ............................................................ 398
tions claires et une évolution progressive.
Pour cette deuxième édition, nous abordons PHP 5, qui entame une vraie
révolution dans la manière d’appréhender le code et la grammaire. PHP 5
garde cependant une compatibilité ascendante qui garde opérationnelles
des fonctions obsolètes. Les points saillants de cette révolution sont le
renforcement de la programmation objet, l’arrivée d’une nouvelle base de
données SQLite et un vrai espace pour le XML.
Le langage PHP est un vrai continent, composé, pour la version 4, de plus
de 2 700 fonctions et de 80 extensions. Au cours de notre exploration,
vous apprendrez des méthodes et maîtriserez progressivement les outils
dans le but de créer un site interactif. Vous étudierez donc les principales
fonctions et notions du langage PHP. À travers des exemples, vous verrez
comment créer facilement vos applications. En douceur et sans vous
encombrer de notions superflues, vous assemblerez ces applications
simples pour réaliser une application "complexe".
Ce livre est fondé sur mon expérience. En 1994, j’étais vendeur de vidéo
numérique dans une grande surface informatique (Surcouf) ; c’est là que
j’ai découvert l’Internet. À cette époque, il existait peu de sites en
français. J’ai d’ailleurs réalisé mon premier site en anglais. Après avoir
enrichi ce site et arpenté longtemps l’Internet, j’ai voulu aller plus loin.
C’est là que j’ai découvert le langage Perl, sous la forme d’un script
capable de traiter des données de formulaire envoyées par e-mail. Par
simple curiosité, j’ai acheté un livre, puis deux… et j’ai été happé par la
programmation. Seul, j’ai donc réalisé des algorithmes de plus en plus
complexes et acquis des méthodes.
Double Poche PHP & MySQL • 13
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Après cinq ans de pratique, je suis entré en 1999 à l’IUT de Marne-la-
Vallée pour étudier d’autres méthodes de programmation et aborder Java
et le langage objet. À la sortie de l’université, mon diplôme en poche, j’ai
un site mais également par le collègue qui reprendra le programme
derrière vous.
Introduction
14 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Je dédie ce livre à mon père, Maurice, qui a toujours encouragé mon goût
d’apprendre, et à mon filleul cambodgien, Touch Ra, qui un jour, je
l’espère, pourra lire cet ouvrage et s’amuser avec du code informatique,
s’il le souhaite.
Introduction
Double Poche PHP & MySQL • 15
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
1
Introduction
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
PHP. Encore un sigle comme l’informatique les affectionne. On fait souvent
des plaisanteries sur leur signification. Pourtant, les inventeurs de langage,
ces forgerons de la syntaxe, possèdent aussi de l’humour, c’est pourquoi
fréquemment, surtout dans la communauté du Libre (ou Open Source), le
nom du langage est fondé sur une plaisanterie pour initiés (private joke).
Ainsi, comme Java signifie café en argot américain, il faut croire que la
cafetière a fourni le carburant aux créateurs de ce langage. PHP est d’abord
le sigle de Personal Home Page. Rasmus Lerdorf, son concepteur, s’est
souvenu des fonctions récursives et l’a baptisé (PHP Hypertext processor). Si
vous développez le sigle, vous générez une boucle infinie, crainte des
programmeurs. PHP signifie PHP Hypertext Processor Hypertext Processor
Hypertext Processor… C’est une fonction "Vache qui rit", suivant la logique
de cette boîte de fromage célèbre qui affiche une vache avec des boîtes
comme boucles d’oreille affichant une vache avec des boîtes… Justement,
PHP pour obtenir plus de détails sur le sujet.
1.3
Intérêt de ce langage
PHP est libre, portable et facile à comprendre. C’est un langage pour tous.
Ce n’est pas un langage ésotérique destiné uniquement aux profession-
nels, avec un jargon incompréhensible. Certains langages dits complexes
sont à la mode car leur complexité permet à des entreprises de passer
beaucoup de temps sur des applications cher payées. Le langage PHP est
suffisamment souple, robuste et rapide pour intéresser les professionnels
et sa richesse d’outils en fera, dans les années qui viennent, le langage
privilégié de toutes les entreprises.
La liberté
PHP est gratuit. Ainsi, la plupart des hébergeurs gratuits le proposent avec
la base de données MySQL, gratuite elle aussi. Libre signifie également
que toute personne peut l’enrichir, à condition d’en faire profiter tout le
monde gracieusement. À l’intérieur de la communauté du Libre, les
licences déclinent des droits d’auteur distincts. En effet, Libre ne signifie
pas que tout est permis ni que tout est gratuit.
Le langage PHP évolue constamment grâce à une communauté de 200
développeurs environ. La documentation est continuellement mise à jour et
des milliers de sites à travers le monde s’y consacrent en publiant des
articles, des forums, des astuces ou en proposant des applications gratuites.
Le langage PHP est porté par une vague de popularité qui ne cesse de croître.
Nous espérons à travers cet ouvrage participer modestement à son essor.
Intérêt de ce langage
Double Poche PHP & MySQL • 19
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
La communauté du logiciel libre (communauté
du Libre)
En 1969, les chercheurs ressentent le besoin de partager leurs
PHP peut être exécuté sur n’importe quelle machine. Les programmes que
vous créerez dans ce livre sont exécutables sur Unix, Linux, Windows ou
Macintosh. Cette caractéristique vous affranchit des décisions prises par
Microsoft ou Apple et sécurise l’avenir de votre application.
1
Introduction
20 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.