Chapitre 1 Introduction... 23 À quoi sert PHP?... 25. Présentation, rôle et fonctionnement d un langage de script... 25 Les versions 1à5dePHP...



Documents pareils
PHP 5.4 Développez un site web dynamique et interactif

Hébergement de sites Web

Diffuser un contenu sur Internet : notions de base... 13

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

L3 informatique TP n o 2 : Les applications réseau

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP 5. avancé. 3 e édition. Eric Daspet. Cyril Pierre de Geyer. Préface de Damien Seguy

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Programmation Web. Madalina Croitoru IUT Montpellier

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Devenez un véritable développeur web en 3 mois!

les techniques d'extraction, les formulaires et intégration dans un site WEB

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Présentation du logiciel Free-EOS Server

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Utiliser un CMS: Wordpress

Formation en Logiciels Libres. Fiche d inscription

Serveurs de noms Protocoles HTTP et FTP

LA PLATE-FORME D'ALTERN C

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Architectures web/bases de données

CAS, la théorie. R. Ferrere, S. Layrisse

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Cisco Certified Network Associate

Formation Webmaster : Création de site Web Initiation + Approfondissement

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Samson BISARO Christian MAILLARD

Thème : Création, Hébergement et référencement d un site Web

Gestion collaborative de documents

Manuel d utilisation du web mail Zimbra 7.1

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

L état de l ART. Évolution récente des technologies. Denis Szalkowski Formateur Consultant

Vulnérabilités et sécurisation des applications Web

Atelier Le gestionnaire de fichier

Module BD et sites WEB

Application Web et J2EE

L identité numérique. Risques, protection

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

SERVEUR DE MESSAGERIE

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Créer et partager des fichiers

--- SIDOMTECH (Auto-Entreprise) ---

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Installation / Sauvegarde Restauration / Mise à jour

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Ce manuel vous accompagne au long des procédures d installation et de restauration de PheBuX 2004 [alternative solutions]

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Créer un site e-commerce avec Dreamweaver CS4 et PHP/MySQL

1 LE L S S ERV R EURS Si 5

Compte Rendu d intégration d application

Atelier 1. Portails documentaires : BioLib et Cemadoc

FileMaker Server 12. publication Web personnalisée avec XML

Information utiles. webpage : Google+ : digiusto/

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Cours CCNA 1. Exercices

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique

Groupe Eyrolles, 2004 ISBN :

A5.2.4 Étude d une technologie, d'un composant, d'un outil

PHP 4 PARTIE : BASE DE DONNEES

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Chapitre 1 Windows Server

Programmation Internet Cours 4

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

RÉALISATION D UN SITE DE RENCONTRE

1 Introduction et installation

Mac OS X Server Administration des technologies Web. Pour la version 10.3 ou ultérieure

WebSSO, synchronisation et contrôle des accès via LDAP

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Développement des Systèmes d Information

Administration de systèmes

Formation : WEbMaster

Joomla! Création et administration d'un site web - Version numérique

Hébergement de site web Damien Nouvel

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Groupe Eyrolles, 2005,

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Projet en nouvelles technologies de l information et de la communication

Une famille d'applications permettant à toute organisation d'optimiser le suivi et la gestion de ses ressources internes vous présente

Bon ben voilà c est fait!

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Le langage SQL Rappels

FileMaker Server 14. Aide FileMaker Server

Transcription:

Chapitre 1 Introduction... 23 À quoi sert PHP?... 25 Présentation, rôle et fonctionnement d un langage de script... 25 Les versions 1à5dePHP... 27 Rasmus Lerdorf... 27 Naissance et évolution de PHP... 28 La création de la communauté... 32 La communauté du libre... 33 Historique... 33 La machine en marche... 34 Cathédrale et bazar... 35 La scission : l Open Source... 35 Le droit et les logiciels libres... 36 PHP et le libre... 37 PHP face à ses concurrents (ASP, JSP, etc.)... 38 PHP face aux autres langages de script web... 38 Comparatif PHP/Perl... 39 Comparatif PHP/ASP... 39 Comparatif PHP/JSP... 40 Perspectives... 41 En bref... 42 Pourquoi ont-ils choisi PHP?... 43 Ils ont choisi PHP... 43 PHP à l assaut du Net... 44 Chapitre 2 Prise en main... 47 Installation... 49 Avec Apache... 49 AvecIIS... 72 Avec iplanet... 74

Le fichier de configuration php.ini... 79 Options PHP de base... 81 Sécurité... 81 Gestion des erreurs et récupération des messages d erreur... 83 Gestion des fichiers... 85 Gestion des données... 86 Les magic quotes... 87 Sessions... 87 Mails... 89 Génération du document... 90 Gestion de l affichage... 91 Extensions dynamiques... 91 Configuration des extensions... 92 Divers... 95 Les éditeurs et débogueurs PHP... 96 L artillerie lourde... 97 Les spécialistes... 100 Dreamweaver et GoLive... 107 Chapitre 3 Le langage PHP... 109 Intégrer le code PHP au HTML... 111 Les balises... 111 Mon premier script... 112 Les commentaires... 114 Les constantes... 115 Les variables... 116 Définition et syntaxe... 116 Les variables dynamiques... 117 Les types... 118 Les variables externes... 128 Les opérateurs... 138 Arithmétiques... 138 Binaires... 139 Chaînes de caractères... 140 Affectation... 140 Incrémentation et décrémentation... 141 Comparaison... 142

Logique... 143 Contrôles d erreur... 143 Exécution... 145 Priorités... 145 Les structures de contrôle... 146 If, else, elseif... 146 While, do while... 150 For, foreach... 151 Switch... 154 Break, continue... 155 Les fonctions... 156 La syntaxe... 157 La portée des variables... 158 Le passage des paramètres... 161 Les paramètres par défaut... 161 Le passage de paramètres par référence... 164 Retourner une valeur... 165 Manipuler des fonctions... 166 La récursivité des fonctions... 171 Les tableaux... 172 Les valeurs d un tableau... 173 Initialisation d un tableau... 173 Les subtilités d initialisation d un tableau... 174 Remplissage d un tableau... 175 Les fonctions de manipulation des tableaux... 176 Les classes, les objets... 204 Définir une classe... 207 Les attributs... 208 Les constructeurs... 208 Les méthodes... 209 L héritage... 215 Les méthodes statiques... 217 Mémoriser des objets... 217 Autres spécificités de la POO avec PHP 5... 219 Les inclusions de fichiers... 227 Inclusions multiples... 230 Les noms des fichiers inclus... 231 Les fichiers insérés distants... 232

Le passage de paramètres... 232 Les chemins relatifs... 233 Cas d erreur et code retour... 234 Un cas d utilisation pratique mais potentiellement dangereux... 235 Chapitre 4 Les en-têtes HTTP... 239 Principe général... 241 Gestion personnalisée de l en-tête HTTP... 246 Redirection... 248 Déclaration du type MIME... 248 Gestion des caches (des navigateurs)... 249 Cookies... 249 Généralités... 250 EnPHP... 252 Exemple utilisant des cookies... 254 Sessions... 259 Exemple utilisant des sessions... 262 Stockage personnalisé des variables de sessions... 265 Clore une session... 271 Les autres fonctions... 271 Les fonctions historiques... 275 Mise en cache avant émission des données... 275 Les fonctions de base... 275 Compression des données... 277 Optimisation des temps de réponse... 278 Gestion du cache interne... 280 Les autres fonctions... 281 Chapitre 5 Les techniques de programmation... 283 Règles de codage... 285 Présentation du code... 285 Programmation... 287 Noms de classes, fonctions, variables et constantes... 287 Commentaires... 289 Séparation du code et de la mise en page... 296 Utilisation des objets et de l instruction include... 296 Utilisation des modèles avec la bibliothèque PEAR... 298

Chapitre 6 Les fonctions mathématiques... 303 Les fonctions mathématiques et les constantes... 305 Constantes... 305 Fonctions... 306 Calculs de précision... 326 Installation... 326 Utilisation... 327 Chapitre 7 La manipulation des chaînes de caractères... 331 Généralités... 333 Afficher du texte... 335 Manipuler les caractères... 341 Fonctions de gestion des chaînes de caractères... 341 Extraction et substitution... 341 Fonctions statistiques (longueur et nombre d occurrences)... 348 Fonctions de position... 353 Comparaison de chaînes de caractères... 354 Comparaison par ordre alphabétique... 355 Comparaison orthographique... 359 Comparaison phonique... 361 Gestion des caractères spéciaux... 363 Ajout du caractère d échappement... 363 Suppression du caractère d échappement... 364 Conversion des caractères en code HTML... 366 Conversion d un alphabet à un autre... 372 Manipulation des balises HTML... 373 Suppression des espaces... 375 Modification de casse... 377 Insertion de motifs... 379 Fusion et découpe... 380 Autres...... 383 Somme de contrôle et cryptage... 385 Expressions régulières... 387 Perl... 387 Posix... 399 Adapter le texte à la langue du visiteur... 409

Chapitre 8 La gestion des dates et des calendriers... 411 Les fonctions de date et heure... 413 Récupérer une date au "format informatique"... 413 Effectuer des opérations sur les dates... 414 Afficher des dates... 415 Les heures GMT... 420 Les microsecondes... 420 Autres fonctions... 421 Les dates et calendriers particuliers... 422 Installation... 422 Pâques... 422 Conversion d une date d un calendrier à l autre... 424 Les gestionnaires d événements... 427 Chapitre 9 La gestion des fichiers et des répertoires... 463 Accéder au système de fichiers du serveur... 465 Le système de fichiers POSIX... 465 Lire et écrire le contenu d un fichier... 468 Lister le contenu d un dossier... 494 Manipulation de fichiers et répertoires... 502 Upload de fichiers... 508 Encore plus de fonctions d accès au système de fichiers du serveur... 514 Modification de l environnement... 514 Statistiques sur les fichiers... 517 Informations sur le disque... 538 Exemple d application... 540 Lecture sur un "pipe"... 550 Compression... 552 Compression Zlib... 552 Checksum... 568 Chapitre 10 L utilisation des bases de données... 569 Introduction aux bases de données... 571 Introduction au langage SQL... 571

Le typage... 572 Les contraintes... 572 Les relations entre tables... 572 Clés primaires et compteurs... 575 Index... 575 Le langage SQL... 575 Création/suppression d une base de données... 576 Les types... 576 Création/suppression d une table... 579 Ajouter des données... 581 Mettre à jour des données... 582 Supprimer des données... 583 Lire des données... 584 Récupérer des informations sur une base... 587 Accéder à une base de données via PHP... 588 Introduction... 588 Couches d abstraction... 590 ODBC... 590 Access (MS)... 590 Installation... 590 Utilisation... 593 DB2 (IBM)... 593 Installation... 594 Utilisation... 597 MySQL... 597 Installation... 598 Utilisation... 604 Exemples d applications... 619 En savoir plus...... 652 ODBC... 660 Installation... 660 Utilisation... 660 Exemples d applications... 673 En savoir plus...... 708 Oracle... 714 Installation... 715 Utilisation... 728

Mise à profit des requêtes préparées... 742 Utilisation des objets de grande taille (BLOB, CLOB)... 744 Gestion des erreurs... 749 Exemples d application... 751 En savoir plus... 785 SQL Server (MS)... 787 Installation... 787 Utilisation... 795 Exemples d applications... 810 En savoir plus...... 842 Les couches d abstraction... 844 Pear DB... 845 Chapitre 11 Les annuaires LDAP... 883 Le schéma LDAP... 887 Installation... 887 Installation du serveur OpenLDAP... 887 Installation du module LDAP pour PHP... 889 L interrogation de LDAP avec PHP... 890 Connexion, authentification et déconnexion sur le serveur LDAP... 890 Opérations sur un annuaire LDAP... 892 Recherche dans un annuaire LDAP... 900 Gestion des erreurs... 914 Opération sur le Distinguished Name (DN)... 915 Opération sur les options... 917 Exemple d application... 920 L authentification sur l annuaire... 920 L ajout d une nouvelle entrée... 925 Recherche dans l annuaire... 928 Modification d une entrée... 930 Réalisation d un arbre de navigation LDAP... 933 Chapitre 12 La messagerie : envoi et lecture de mails... 939 E-mail... 941 Installation... 941 Envoyer un e-mail simple... 942

Type MIME... 945 Envoyer un e-mail au format HTML... 945 Envoyer un e-mail avec fichiers attachés... 946 Envoyer un e-mail multi-part... 948 Envoyer un e-mail HTML avec des images... 952 Accéder à son compte messagerie IMAP, POP3 ou NNTP... 954 Installation... 955 Connexion et déconnexion à un serveur... 956 Sélection d une boîte à lettres... 959 Aperçu du contenu de la boîte à lettres... 963 Lecture des en-têtes... 966 Lecture des messages... 975 Recherche et tri des messages... 980 Modification des drapeaux et suppression des messages... 982 Ajout et déplacement de messages... 984 Inscription/désinscription à un serveur de nouvelles... 985 Identifiants... 986 Composition et décomposition d adresses e-mail... 986 Génération et envoi de mails... 988 Coder / décoder... 989 Gérer les erreurs... 991 Application d exemple : le webmail... 992 Administration des boîtes à lettres... 997 Chapitre 13 Les images et les animations Flash... 1001 Images (utilisation de la bibliothèque GD)... 1003 Installation... 1003 Définition de l image de base... 1006 Du texte dans les images... 1021 Dessiner des formes géométriques... 1033 Utiliser les couleurs... 1045 Copier des parties d image... 1045 Taille d une image... 1052 Un exemple : l histogramme... 1053 Récupérer des informations sur un fichier image... 1058 Récupérer des informations EXIF sur un fichier image... 1058

Les animations Flash... 1062 Installation... 1063 Utilisation... 1064 Chapitre 14 La création de documents PDF... 1117 Installation... 1119 Créer la base d un document PDF... 1120 Préciser les attributs (mots-clés) du document... 1124 Préciser les paramètres de la page... 1124 Afficher du texte... 1126 Dessiner des formes géométriques... 1131 Modifier les paramètres du tracé... 1136 Inclure une image... 1142 Ajouter des liens et des annotations... 1145 Ajouter des fichiers attachés et aperçus (thumbnails)... 1149 Modifier le système de coordonnées... 1150 Lire, sauvegarder et restaurer les paramètres courants... 1152 Créer un modèle... 1157 Chapitre 15 L utilisation de XML... 1163 Introduction... 1165 Présentation du langage XML... 1165 Le format XML... 1165 Exemple de document XML... 1167 Utilisation des documents XML... 1169 Les parseurs... 1169 Le parseur expat... 1169 XSLT... 1192 Présentation... 1192 Les transformations de documents XML... 1194 Génération de messages XML... 1201 Les messages WDDX... 1202

Chapitre 16 La gestion des protocoles HTTP, FTP, SOAP, etc.... 1209 Fonctions réseau (de base)... 1211 Réseau... 1211 Adresses IP et DNS... 1211 Protocoles et services... 1215 Les sockets... 1216 FTP... 1221 Installation... 1221 Les fonctions de base... 1222 Exemple d application... 1227 Autres fonctions... 1232 curl (client URL Library)... 1234 Installation... 1235 Utilisation... 1236 Exemples d applications... 1242 SOAP... 1245 Installation... 1249 Utiliser les classes PEAR... 1249 Interroger Google via PHP... 1250 Chapitre 17 Les processus et les identifiants... 1255 Exécution d un programme... 1257 POSIX... 1259 Chapitre 18 L interconnectivité avec COM... 1271 Installation... 1273 Utilisation... 1273 Chapitre 19 L optimisation des temps de réponse... 1283 Introduction... 1285 Environnement de test des solutions "bas niveau" (modules PHP)... 1286 Configuration matérielle... 1286 Pages testées... 1287

Instrument de mesure... 1289 Présentation des mesures... 1289 En l absence de solution d optimisation... 1290 Mesures... 1290 Avec Zend Optimizer... 1293 Description... 1293 Installation... 1293 Mesures... 1297 Conclusion... 1300 Avec Alternative PHP Cache (APC)... 1300 Description... 1300 Installation... 1300 Mesures... 1302 Conclusion... 1305 Avec PHP Accelerator (PHPA)... 1305 Description... 1305 Installation... 1305 Mesures... 1306 Conclusion... 1308 Avec Zend Accelerator (Zend Performance Suite)... 1309 Description... 1309 Installation... 1309 Mesures... 1315 Conclusion... 1318 Solutions "bas niveau" (modules PHP)... 1318 Solutions "haut niveau" (programmation PHP)... 1319 Conclusion... 1320 Chapitre 20 L obfuscation : Distribuer ses scripts sans dévoiler son code... 1321 Introduction... 1323 Avec Zend Encoder... 1323 Installation... 1324 Utilisation... 1328 Conclusion... 1330 Avec ioncube PHP Encoder... 1330 Installation... 1331

Utilisation... 1331 Avec PHP guardian... 1331 Avec POBS... 1332 Installation... 1332 Utilisation... 1332 Conclusion... 1334 Autres... 1334 Chapitre 21 Annexe A : des exemples d applications... 1335 Administration de bases de données... 1337 phpmyadmin... 1337 Autres... 1342 Création de sites... 1342 PHPNuke... 1342 SPIP... 1345 Autres... 1347 Forums de discussion... 1347 PHPbb... 1347 Phorum : un moteur de forums... 1349 Autres... 1351 Annuaires de liens... 1352 Netref... 1352 Autres... 1353 Solutions de travail collaboratif... 1353 Moregroupware... 1353 Autres... 1355 Graphiques... 1356 JPGraph... 1356 Chapitre 22 Annexe B : les en-têtes HTTP et les variables externes... 1359 Chapitre 23 Annexe C : les erreurs HTTP... 1365 Chapitre 24 Index... 1369

Laurent GUEDON Je dédie ce livre à tous mes amis et plus particulièrement... j À Philippe, Amiel (les compétences) et l équipe de Felix ainsi qu à la société Cyberbrain (mon couffin) ; j À Myriam, si adorable ; j À mes parents pour leur soutien ; j À la winwin team, Zou et Syl. Damien HEUTE Parce qu il y a des choses plus faciles à écrire qu à dire, je dédie ce livre : j À mes parents que j aime et qui m ont toujours apporté un soutien indéfectible ; j j j À mes frères et à mon neveu qui peut-être, un jour, s intéressera à la version 2015 de PHP ; À mes collègues qui par leur bonne humeur leur et professionnalisme m ont beaucoup appris durant ma première expérience professionnelle ; À mes amis que j ai un peu délaissés pour écrire ce livre. Thomas HEUTE Je dédie l énergie apportée dans ce livre : j À mes parents et frères que j ai peu vus durant la dernière année ; j Mon filleul Adrien, star du chapitre sur GD, et qui a encore le temps avant d apprendre le PHP ; j Mes amis de France et des États-Unis, que j ai quelque peu délaissés (I d like to thank my US friends and to apologize about having been so busy. By the way, we ll keep in touch) ; j Aux membres actifs de l ESIAL Roller Dream Team 1999-2000. Pierre-Emmanuel MULLER Merci à Amiel, Sylviane, Pierre, Régis Priqueler (http://www.aizenko.com) et Steph Pineau (http://steph.pineau.free.fr/php/).