You are previewing PHP & MySQL, 4e édition.
O'Reilly logo
PHP & MySQL, 4e édition

Book Description

Les technologies open-source PHP et MySQL sont les plus populaires au monde pour développer rapidement des sites ou des applications web faisant appel à des bases de données.

Cet ouvrage complet expose avec clarté et exhaustivité comment combiner ces deux outils pour produire des sites web dynamiques, de leur expression la plus simple à des sites de commerce électronique sécurisés et complexes. Il présente en détail le langage PHP, montre comment mettre en place et utiliser une base de données MySQL, puis explique comment utiliser PHP pour interagir avec la base de données et le serveur web.

Les auteurs vous guident dans la réalisation d'applications réelles et pratiques, que vous pourrez ensuite déployer telles quelles ou personnaliser selon vos besoins. Vous apprendrez à résoudre des tâches classiques comme l'authentification des utilisateurs, la construction d'un panier virtuel, la production dynamique de documents PDF et d'images, l’envoi et la gestion du courrier électronique, la connexion aux services web avec XML et le développement d’applications web 2.0 avec Ajax.

Soigneusement mis à jour et révisé pour cette 4e édition, cet ouvrage couvre les nouveautés de PHP 5 jusqu’à sa version 5.3 et les fonctionnalités introduites par MySQL 5.1.

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. Table des matières
  5. Introduction
    1. Les points forts de ce livre
    2. Ce que vous apprendrez en lisant ce livre
    3. Présentation de PHP
    4. Présentation de MySQL
    5. Pourquoi utiliser PHP et MySQL ?
    6. Quelques avantages de PHP
      1. Performances
      2. Adaptabilité
      3. Intégration avec les bases de données
      4. Bibliothèques intégrées
      5. Coût
      6. Facilité d’apprentissage de PHP
      7. Support orienté objet
      8. Portabilité
      9. Souplesse dans le processus de développement
      10. Code source
      11. Disponibilité du support et de la documentation
    7. Nouveautés de PHP 5
    8. Quelques avantages de MySQL
      1. Performances
      2. Coût réduit
      3. Simplicité d’emploi
      4. Portabilité
      5. Code source
      6. Disponibilité du support
    9. Nouveautés de MySQL 5
    10. Organisation de ce livre
    11. Encore un mot
  6. Partie I. Utilisation de PHP
    1. 1. PHP : les bases
      1. Utilisation de PHP
      2. Formulaires HTML
        1. Code du formulaire
        2. Traitement du formulaire
      3. Incorporation de code PHP dans du code HTML
        1. Balises PHP
        2. Styles des balises PHP
        3. Instructions de PHP
        4. Espaces
        5. Commentaires
      4. Ajout de contenu dynamique
        1. Appel de fonctions
        2. Fonction date()
      5. Accès aux variables des formulaires
        1. Variables des formulaires
        2. Concaténation de chaînes
        3. Variables et littéraux
      6. Identificateurs
      7. Création de variables
      8. Affectation de valeurs à des variables
        1. Types des variables
        2. Types de données du PHP
        3. Intérêt du typage
        4. Transtypage
        5. Variables dynamiques
      9. Constantes
      10. Portée des variables
      11. Opérateurs
        1. Opérateurs arithmétiques
        2. Opérateur de chaînes
        3. Opérateurs d’affectation
        4. Opérateurs de comparaison
        5. Opérateurs logiques
        6. Opérateurs sur les bits
        7. Autres opérateurs
      12. Utilisation des opérateurs : calcul des totaux d’un formulaire
      13. Priorité et associativité des opérateurs : ordre d’évaluation des expressions
      14. Fonctions sur les variables
        1. Test et définition des types de variables
        2. Test de l’état d’une variable
        3. Réinterprétation des variables
      15. Structures de contrôle
      16. Prise de décision avec des structures conditionnelles
        1. Instructions if
        2. Blocs de code
        3. Instructions else
        4. Instructions elseif
        5. Instructions switch
        6. Comparaison des différentes structures conditionnelles
      17. Structures de répétition : itérations
        1. Boucles while
        2. Boucles for et foreach
        3. Boucles do…while
      18. Interruption de l’exécution d’une structure de contrôle ou d’un script
      19. Employer l’autre syntaxe des structures de contrôle
      20. Utiliser declare
      21. Prochaine étape : enregistrement de la commande du client
    2. 2. Stockage et récupération des données
      1. Stockage des données en vue d’un usage ultérieur
      2. Stockage et récupération des commandes de Bob
      3. Présentation des fonctions de traitement des fichiers
      4. Ouverture d’un fichier
        1. Modes d’ouverture des fichiers
        2. Utilisation de fopen() pour ouvrir un fichier
        3. Ouverture de fichiers via FTP ou HTTP
        4. Problèmes d’ouverture de fichiers
      5. Écriture dans un fichier
        1. Paramètres de la fonction fwrite()
        2. Formats de fichiers
      6. Fermeture d’un fichier
      7. Lecture dans un fichier
        1. Ouverture d’un fichier en lecture : fopen()
        2. Détermination du moment où doit s’arrêter la lecture : feof()
        3. Lecture d’une ligne à la fois : fgets(), fgetss() et fgetcsv()
        4. Lecture l’intégralité du contenu d’un fichier : readfile(), fpassthru() et file()
        5. Lecture d’un caractère : fgetc()
        6. Lecture d’une longueur arbitraire : fread()
      8. Autres fonctions utiles pour la manipulation des fichiers
        1. Vérification de l’existence d’un fichier : file_exists()
        2. Détermination de la taille d’un fichier : filesize()
        3. Suppression d’un fichier : unlink()
        4. Navigation dans un fichier : rewind(), fseek() et ftell()
      9. Verrouillage des fichiers
      10. Une meilleure solution : les systèmes de gestion de base de données
        1. Problèmes posés par l’usage de fichiers plats
        2. La solution apportée par les SGBDR à ces problèmes
      11. Pour aller plus loin
      12. Pour la suite
    3. 3. Utilisation de tableaux
      1. Qu’est-ce qu’un tableau ?
      2. Tableaux à indices numériques
        1. Initialisation des tableaux à indices numériques
        2. Accès au contenu des tableaux
        3. Utilisation de boucles pour accéder au contenu d’un tableau
      3. Tableaux avec des indices différents
        1. Initialisation d’un tableau
        2. Accès aux éléments du tableau
        3. Utilisation de boucles
      4. Opérateurs sur les tableaux
      5. Tableaux multidimensionnels
      6. Tri de tableaux
        1. Utilisation de la fonction sort()
        2. Utilisation des fonctions asort() et ksort() pour trier des tableaux
        3. Tri dans l’ordre inverse
      7. Tri de tableaux multidimensionnels
        1. Tris définis par l’utilisateur
        2. Tris définis par l’utilisateur, dans l’ordre inverse
      8. Réordonner des tableaux
        1. Utilisation de la fonction shuffle()
        2. Utilisation de la fonction array_reverse()
      9. Chargement de tableaux à partir de fichiers
      10. Autres manipulations de tableaux
        1. Parcours d’un tableau : each, current(), reset(), end(), next(), pos() et prev()
        2. Application d’une fonction donnée à chaque élément d’un tableau : array_walk()
        3. Comptage des éléments d’un tableau : count(), sizeof() et array_count_values()
        4. Conversion de tableaux en variables scalaires : extract()
      11. Pour aller plus loin
      12. Pour la suite
    4. 4. Manipulation de chaînes et d’expressions régulières
      1. Application modèle : formulaire intelligent de saisie d’un message (Smart Form Mail)
      2. Mise en forme de chaînes
        1. Élagage des chaînes : chop(), Itrim() et trim()
        2. Mise en forme des chaînes en vue de leur présentation
        3. Mise en forme de chaînes en vue de leur enregistrement : addslashes() et stripslashes()
      3. Fusion et scission de chaînes au moyen des fonctions de traitement de chaîne
        1. Utilisation des fonctions explode(), implode() et join()
        2. Utilisation de la fonction strtok()
        3. Utilisation de la fonction substr()
      4. Comparaison de chaînes
        1. Comparaison des chaînes : strcmp(), strcasecmp() et strnatcmp()
        2. Longueur d’une chaîne : la fonction strlen()
      5. Recherche et remplacement de sous-chaînes avec les fonctions de traitement de chaînes
        1. Recherche de sous-chaînes dans des chaînes : strstr(), strchr(), strrchr() et stristr()
        2. Détermination de la position d’une sous-chaîne dans une chaîne : strpos() et strrpos()
        3. Substitution de sous-chaînes : str_replace() et substr_replace()
      6. Introduction aux expressions régulières
        1. Notions de base
        2. Ensembles et classes de caractères
        3. Répétition
        4. Sous-expressions
        5. Dénombrement de sous-expressions
        6. Ancrage au début ou à la fin d’une chaîne
        7. Branchement
        8. Recherche littérale de caractères spéciaux
        9. Récapitulatif sur les caractères spéciaux
        10. Application au cas du formulaire “intelligent” de courrier électronique
      7. Recherche de sous-chaînes au moyen d’expressions régulières
      8. Remplacement de sous-chaînes au moyen d’expressions
        1. Découpage de chaînes au moyen d’expressions régulières
      9. Pour aller plus loin
      10. Pour la suite
    5. 5. Réutilisation de code et écriture de fonctions
      1. Avantages de la réutilisation du code
        1. Coût
        2. Fiabilité
        3. Cohérence
      2. Utilisation des instructions require() et include()
        1. Extensions des noms de fichiers et require()
      3. Utilisation require() pour créer des modèles de site web
        1. Utilisation des options de configuration auto_prepend_file et auto_append_file
      4. Utilisation de fonctions en PHP
        1. Appel de fonctions
        2. Appel d’une fonction indéfinie
        3. Casse et noms des fonctions
      5. Définir ses propres fonctions ?
      6. Structure de base d’une fonction
        1. Attribution d’un nom à une fonction
      7. Paramètres
      8. Portée
      9. Passer des paramètres par référence et par valeur
      10. Utilisation du mot-clé return
      11. Retour de valeurs des fonctions
      12. Récursivité
      13. Pour aller plus loin
      14. Pour la suite
    6. 6. PHP orienté objet
      1. Concepts de la programmation orientée objet
        1. Classes et objets
        2. Polymorphisme
        3. Héritage
      2. Création de classes , d’attributs et d’opérations en PHP
        1. Structure d’une classe
        2. Constructeurs
        3. Destructeurs
      3. Instanciation des classes
      4. Utilisation des attributs de classe
      5. Contrôler l’accès avec private et public
      6. Appel des opérations d’une classe
      7. Implémentation de l’héritage en PHP
      8. Contrôler la visibilité via l’héritage avec private et protected
        1. Redéfinition (overriding)
        2. Empêcher l’héritage et les redéfinitions avec final
        3. Héritage multiple
        4. Implémentation d’interfaces
      9. Conception de classes
      10. Implémentation d’une classe
      11. Comprendre les fonctionnalités orientées objet avancées de PHP
        1. Constantes de classe
        2. Méthodes statiques
        3. Vérification du type de classe et indication de type
        4. Clonage d’objets
        5. Classes abstraites
        6. Surcharge de méthodes avec __call()
        7. Utiliser __autoload()
        8. Implémentation des itérateurs et itérations
        9. Conversion de classes en chaînes
        10. Utiliser l’API d’introspection
      12. Pour la suite
    7. 7. Gestion des exceptions
      1. Notions relatives à la gestion des exceptions
        1. La classe Exception
      2. Exceptions définies par l’utilisateur
        1. Exceptions dans le garage de Bob
      3. Exceptions et autres mécanismes de gestion des erreurs en PHP
      4. Lectures complémentaires
      5. Prochaine étape
  7. Partie II. Utilisation de MySQL
    1. 8. Conception d’une base de données web
      1. Concepts des bases de données relationnelles
        1. Tables
        2. Colonnes
        3. Lignes
        4. Valeurs
        5. Clés
        6. Schémas
        7. Relations
      2. Conception d’une base de données web
        1. Penser aux objets réels que vous modélisez
        2. Éviter d’enregistrer des informations redondantes
        3. Utiliser des valeurs de colonne atomiques
        4. Choisir des clés pertinentes
        5. Penser aux questions que vous poserez à votre base de données
        6. Éviter les architectures ayant beaucoup d’attributs vides
        7. Récapitulatif sur les types de tables
      3. Architecture d’une base de données web
        1. Architecture
      4. Pour aller plus loin
      5. Pour la suite
    2. 9. Création d’une base de données web
      1. Note sur l’utilisation du moniteur MySQL
      2. Comment ouvrir une session MySQL
      3. Création des bases de données et des utilisateurs
      4. Configuration des utilisateurs et des privilèges
      5. Introduction au système de privilèges de MySQL
        1. Principe des privilèges minimaux
        2. Configuration des utilisateurs : la commande GRANT
        3. Types et niveaux des privilèges
        4. La commande REVOKE
        5. Exemples d’utilisation de GRANT et de REVOKE
      6. Configurer un utilisateur pour le Web
      7. Utiliser la bonne base de données
      8. Création des tables de la base de données
        1. Signification des autres mots-clés
        2. Analyse des types de colonnes
        3. Examiner la base de données avec SHOW et DESCRIBE
        4. Création d’index
      9. Identificateurs MySQL
      10. Types des colonnes
        1. Types numériques
        2. Types de dates et d’heures
        3. Types de chaînes
      11. Pour aller plus loin
      12. Pour la suite
    3. 10. Travailler avec une base de données MySQL
      1. Qu’est-ce que SQL ?
      2. Insertion de données dans une base de données
      3. Récupération des données dans la base de données
        1. Récupérer des données ayant des critères spécifiques
        2. Récupérer des données dans plusieurs tables
        3. Récupérer les données dans un ordre particulier
        4. Groupement et agrégation des données
        5. Choisir les lignes à renvoyer
        6. Utiliser des sous-requêtes
      4. Mise à jour des enregistrements de la base de données
      5. Modification des tables après leur création
      6. Supprimer des enregistrements de la base de données
      7. Supprimer des tables
      8. Supprimer une base de données entière
      9. Pour aller plus loin
      10. Pour la suite
    4. 11. Accès à une base de données MySQL à partir du Web avec PHP
      1. Fonctionnement des architectures de bases de données web
      2. Principales étapes dans l’interrogation d’une base de données à partir du Web
      3. Vérifier et filtrer les données saisies par l’utilisateur
      4. Établissement de la connexion
      5. Choisir une base de données à utiliser
      6. Interroger la base de données
      7. Récupérer les résultats de la requête
      8. Déconnexion de la base de données
      9. Ajouter des informations dans la base de données
      10. Utiliser des instructions préparées
      11. Autres interfaces PHP pour les bases de données
      12. Utilisation d’une interface de base de données générique : PEAR::MDB2
      13. Pour aller plus loin
      14. Pour la suite
    5. 12. Administration MySQL avancée
      1. Les détails du système des privilèges
        1. La table user
        2. Les tables db et host
        3. Les tables tables_priv, columns_priv et procs_priv
        4. Contrôle d’accès : utilisation des tables de privilèges par MySQL
        5. Mise à jour des privilèges : à quel moment les modifications prennent-elles effet ?
      2. Sécuriser une base de données MySQL
        1. MySQL du point de vue du système d’exploitation
        2. Mots de passe
        3. Privilèges des utilisateurs
        4. Problèmes relatifs au Web
      3. Obtenir plus d’informations sur les bases de données
        1. Obtenir des informations avec SHOW
        2. Obtenir des informations sur les colonnes avec DESCRIBE
        3. Comprendre le fonctionnement des requêtes avec EXPLAIN
      4. Astuces générales d'optimisation
        1. Optimisation de l'architecture
        2. Permissions
        3. Optimisation des tables
        4. Utilisation des index
        5. Utiliser des valeurs par défaut
        6. Autres astuces
      5. Sauvegarder votre base de données MySQL
      6. Restauration de votre base de données MySQL
      7. Implémenter la réplication
        1. Configurer le maître
        2. Réaliser le transfert de données initial
        3. Configurer l'esclave ou les esclaves
      8. Pour aller plus loin
      9. Pour la suite
    6. 13. Programmation MySQL avancée
      1. L’instruction LOAD DATA INFILE
      2. Les moteurs de stockage
      3. Les transactions
        1. Comprendre la définition des transactions
        2. Utiliser des transactions avec InnoDB
      4. Les clés étrangères
      5. Les procédures stockées
        1. Un exemple simple
        2. Variables locales
        3. Curseurs et structures de contrôle
      6. Pour aller plus loin
      7. Pour la suite
  8. Partie III. Sécurité
    1. 14. Sécurité des applications web
      1. Stratégies de sécurité
        1. Partir du bon pied
        2. Trouver un équilibre entre la sécurité et la facilité d’utilisation
        3. Surveiller la sécurité
        4. Une approche de base
      2. Identifier les menaces auxquelles nous devrons faire face
        1. Accès ou modification de données confidentielles
        2. Perte ou destruction des données
        3. Déni de service
        4. Injection de code malicieux
        5. Compromission d’un serveur
      3. Savoir à qui l’on a affaire
        1. Les pirates
        2. Utilisateurs victimes de machines infectées
        3. Employés mécontents
        4. Voleurs de matériel
        5. Nous-mêmes
      4. Sécuriser son code
        1. Filtrage des données fournies par les utilisateurs
        2. Protéger les sorties
        3. Organiser le code
        4. Contenu du code
        5. Considérations sur le système de fichiers
        6. Stabilité du code et bogues
        7. Apostrophes d’exécution et exec
      5. Sécuriser le serveur web et PHP
        1. Garder les logiciels à jour
        2. Lire le fichier php.ini
        3. Configurer le serveur web
        4. Applications web chez des hébergeurs
      6. Sécuriser le serveur de base de données
        1. Utilisateurs et système de permissions
        2. Envoi de données au serveur
        3. Connexion au serveur
        4. Exécution du serveur
      7. Protéger le réseau
        1. Installation de pare-feux
        2. Utilisation d’une DMZ
        3. Préparation contre les attaques DoS et DDoS
      8. Sécurité des ordinateurs et du système d’exploitation
        1. Maintenir à jour le système d’exploitation
        2. Ne lancer que ce qui est nécessaire
        3. Sécuriser physiquement le serveur
      9. Se préparer aux désastres
      10. Pour la suite
    2. 15. Authentification avec PHP et MySQL
      1. Identification des visiteurs
      2. Implémenter un contrôle d’accès
        1. Stockage des mots de passe
        2. Chiffrement des mots de passe
        3. Protéger plusieurs pages
      3. Authentification de base
      4. Utiliser l’authentification de base avec PHP
      5. Utiliser l’authentification de base avec les fichiers .htaccess d’Apache
      6. Utiliser l’authentification mod_auth_mysql
        1. Installation de mod_auth_mysql
        2. Utilisation de mod_auth_mysql
      7. Création d’une authentification personnalisée
      8. Pour aller plus loin
      9. Pour la suite
    3. 16. Transactions sécurisées avec PHP et MySQL
      1. Transactions sécurisées
        1. L'ordinateur de l'utilisateur
        2. Internet
        3. Votre système
      2. Utilisation de SSL
      3. Filtrer les données saisies
      4. Stockage sécurisé
      5. Stockage des numéros de cartes de crédit
      6. Utilisation du chiffrement avec PHP
        1. Installation de GPG
      7. Pour aller plus loin
      8. Pour la suite
  9. Partie IV. Techniques PHP avancées
    1. 17. Interaction avec le système de fichiers et le serveur
      1. Introduction au dépôt de fichiers
        1. Code HTML d’un formulaire de dépôt de fichiers
        2. Écriture du code PHP pour le traitement du fichier
        3. Problèmes fréquents
      2. Utilisation des fonctions de manipulation des répertoires
        1. Lecture du contenu de répertoires
        2. Obtention d’informations sur le répertoire courant
        3. Création et suppression de répertoires
      3. Interaction avec le système de fichiers
        1. Obtention d’informations sur les fichiers
        2. Modification des propriétés d’un fichier
        3. Création, suppression et déplacement de fichiers
      4. Utilisation de fonctions d’exécution de programmes
      5. Interaction avec l’environnement : getenv() et putenv()
      6. Pour aller plus loin
      7. Pour la suite
    2. 18. Utilisation des fonctions de réseau et de protocole
      1. Vue d’ensemble des protocoles réseau
      2. Envoi et réception de courriers électroniques
      3. Utilisation des données d’autres sites web
      4. Utilisation de fonctions de recherche réseau
      5. Utilisation de FTP
        1. Sauvegarde d’un fichier ou création d’un enregistrement miroir d’un fichier
        2. Téléchargement de fichiers vers un serveur
        3. Éviter les dépassements de délai
        4. Autres fonctions FTP
      6. Pour aller plus loin
      7. Pour la suite
    3. 19. Gestion de la date et de l’heure
      1. Obtention de la date et de l’heure à partir d’un script PHP
        1. Utilisation de la fonction date()
        2. Utilisation des étiquettes temporelles Unix
        3. Utilisation de la fonction getdate()
        4. Validation de dates avec checkdate()
        5. Formatage des étiquettes temporelles
      2. Conversion entre des formats de date PHP et MySQL
      3. Calculs de dates avec PHP
      4. Calculs de dates avec MySQL
      5. Utiliser des microsecondes
      6. Utilisation des fonctions PHP de calendrier
      7. Pour aller plus loin
      8. Pour la suite
    4. 20. Génération d’images via PHP
      1. Configuration du support des images dans PHP
      2. Formats graphiques
        1. JPEG
        2. PNG
        3. WBMP
        4. GIF
      3. Création d’images
        1. Canevas de l’image
        2. Dessin ou impression de texte dans une image
        3. Production de l’image finale
        4. Nettoyage final
      4. Utilisation d’images produites automatiquement dans d’autres pages
      5. Utilisation de texte et de polices pour créer des images
        1. Définition du canevas de base
        2. “Faire tenir” le texte sur le bouton
        3. Positionnement du texte
        4. Écriture du texte sur le bouton
        5. Fin du traitement
      6. Représentation graphique de données numériques
      7. Autres fonctions de création et de manipulation d’images
      8. Pour aller plus loin
      9. Pour la suite
    5. 21. Utilisation du contrôle de session en PHP
      1. Qu’est-ce que le contrôle de session ?
      2. Fonctionnalité de base d’une session
        1. Qu’est-ce qu’un cookie ?
        2. Création de cookies à partir d’un script PHP
        3. Utilisation des cookies avec des sessions
        4. Stockage de l’ID de session
      3. Implémentation d’un contrôle de session simple
        1. Démarrage d’une session
        2. Enregistrement des variables de session
        3. Utilisation de variables de session
        4. Suppression des variables et destruction de la session
      4. Un exemple de session simple
      5. Configuration du contrôle de session
      6. Authentification avec le contrôle de session
      7. Pour aller plus loin
      8. Pour la suite
    6. 22. Autres fonctions et possibilités offertes par PHP
      1. Évaluation de chaînes : eval()
      2. Achèvement de l’exécution : die() et exit()
      3. Sérialisation de variables et d’objets
      4. Obtention d’informations sur l’environnement PHP
        1. Liste des extensions chargées
        2. Identification du propriétaire d’un script
        3. Détermination de la date de dernière modification d’un script
      5. Modification temporaire de l’environnement d’exécution
      6. Colorisation du code source
      7. Utiliser PHP en ligne de commande
      8. Pour la suite
  10. Partie V. Créer des projets avec PHPet MySQL
    1. 23. Utilisation de PHP et de MySQL dans des projets importants
      1. Appliquer les règles du génie logiciel au développement web
      2. Planification et mise en œuvre d‘un projet d‘application web
      3. Réutilisation du code
      4. Écrire du code facile à maintenir
        1. Standards de programmation
        2. Décomposer le code
        3. Utiliser une structure standard pour vos répertoires
        4. Documenter et partager les fonctions développées en interne
      5. Implémenter un contrôle de versions
      6. Choisir un environnement de développement
      7. Documenter vos projets
      8. Prototypage
      9. Séparation de la logique et du contenu
      10. Optimisation du code
        1. Quelques optimisations simples
        2. Utilisation des produits de Zend
      11. Tests
      12. Pour aller plus loin
      13. Pour la suite
    2. 24. Débogage
      1. Les erreurs de programmation
        1. Erreurs de syntaxe
        2. Erreurs en cours d’exécution
        3. Erreurs de logique
      2. Aide au débogage des variables
      3. Les niveaux d’erreur
      4. Modifier les paramètres d’affichage des erreurs
      5. Déclencher vos propres erreurs
      6. Gérer correctement les erreurs
      7. Pour la suite
    3. 25. Authentification des utilisateurs et personnalisation
      1. Composants de la solution
        1. Identification des utilisateurs et personnalisation
        2. Enregistrer les liens vers les sites favoris
        3. Sites suggérés
      2. Résumé de la solution
      3. Implémentation de la base de données
      4. Implémentation du site de base
      5. Implémentation de l’authentification des utilisateurs
        1. Enregistrement
        2. Connexion
        3. Déconnexion
        4. Modifier les mots de passe
        5. Réinitialiser les mots de passe oubliés
      6. Implémentation de l’enregistrement et de la récupération des favoris
        1. Ajouter des liens
        2. Afficher les favoris
        3. Supprimer des favoris
      7. Implémentation de la suggestion de sites
      8. Pour aller plus loin
      9. Pour la suite
    4. 26. Implémentation d'un panier virtuel
      1. Les composants
        1. Implémenter un catalogue en ligne
        2. Conserver une trace des achats effectués par l‘utilisateur
        3. Implémenter un système de paiement
        4. Créer une interface d'administration
      2. Présentation de la solution
      3. Implémentation de la base de données
      4. Implémentation du catalogue en ligne
        1. Liste des catégories
        2. Liste des livres d’une catégorie
        3. Afficher les informations relatives à un livre
      5. Implémentation du panier virtuel
        1. Utiliser le script show_cart.php
        2. Afficher le panier virtuel
        3. Ajouter des articles dans le panier virtuel
        4. Enregistrer le panier virtuel modifié
        5. Afficher une barre d’en-tête de résumé
        6. Règlement des achats
      6. Implémentation du paiement
      7. Implémentation d’une interface d’administration
      8. Pour aller plus loin
      9. Utilisation d’un système existant
      10. Pour la suite
    5. 27. Implémentation d‘un webmail
      1. Composants de la solution
        1. Les protocoles de courrier POP3 et IMAP
        2. Gestion de POP3 et IMAP en PHP
      2. Résumé de la solution
      3. Création de la base de données
      4. Architecture du script
      5. Connexion et déconnexion
      6. Configuration de comptes de courrier
        1. Création d‘un compte de courrier
        2. Modifier un compte de courrier existant
        3. Supprimer un compte de courrier
      7. Lecture du courrier
        1. Choisir un compte
        2. Consulter le contenu d‘une boîte aux lettres
        3. Lecture d‘un e-mail
        4. Afficher les en-têtes d’un message
        5. Suppression des messages
      8. Envoyer du courrier
        1. Envoyer un nouveau message
        2. Répondre à un message ou le faire suivre
      9. Pour aller plus loin
      10. Pour la suite
    6. 28. Implémentation d’un gestionnaire delistes de diffusion
      1. Composants de la solution
        1. Configuration de la base de données
        2. Transfert des fichiers
        3. Envoyer des e-mails incluant des pièces jointes
      2. Présentation de la solution
      3. Configuration de la base de données
      4. Architecture du script
      5. Implémentation de la connexion
        1. Création d’un nouveau compte
        2. Ouvrir une session
      6. Implémentation des fonctions de l’utilisateur
        1. Consultation des listes
        2. Affichage des informations d’une liste
        3. Affichage des archives d’une liste
        4. Inscriptions et désinscriptions
        5. Modification des paramètres d’un compte
        6. Changement des mots de passe
        7. Fermeture de session
      7. Implémentation des fonctions administratives
        1. Création d’une nouvelle liste
        2. Transfert vers le serveur d’un nouveau bulletin
        3. Gestion du transfert de plusieurs fichiers
        4. Prévisualisation du bulletin
        5. Envoi du bulletin
      8. Pour aller plus loin
      9. Pour la suite
    7. 29. Implémentation d'un forum web
      1. Comprendre le processus
      2. Composants de la solution
      3. Présentation de la solution
      4. Conception de la base de données
      5. Afficher l'arborescence des articles
        1. Ouverture et fermeture des fils de discussion
        2. Affichage des articles
        3. Utilisation de la classe treenode
      6. Afficher des articles particuliers
      7. Ajouter de nouveaux articles
      8. Extensions
      9. Utiliser un système existant
      10. Pour la suite
    8. 30. Production de documents personnalisés en PDF
      1. Présentation du projet
      2. Évaluation des formats de documents
        1. Papier
        2. Texte ASCII
        3. HTML
        4. Formats des traitements de texte
        5. Rich Text Format
        6. PostScript
        7. Portable Document Format
      3. Les composants de la solution
        1. Système d’évaluation
        2. Logiciel de génération des documents
      4. Présentation de la solution
        1. Poser les questions du QCM
        2. Évaluation des réponses
        3. Production du certificat RTF
        4. Production d’un certificat PDF à partir d’un modèle
        5. Production d’un document PDF avec PDFlib
        6. Un script “Bonjour tout le monde” pour PDFlib
        7. Production d’un certificat avec PDFlib
      5. Gestion des problèmes avec les en-têtes
      6. Pour aller plus loin
      7. La suite
    9. 31. Connexion à des services web avec XML et SOAP
      1. Présentation du projet : manipuler XML et les services web
        1. Introduction à XML
        2. Introduction aux services web
      2. Composants de la solution
        1. Utilisation de l’interface des services web d’Amazon
        2. Analyse XML : réponses REST
        3. Utilisation de SOAP avec PHP
        4. Mise en cache
      3. Présentation de la solution
        1. Cœur de l’application
        2. Affichage des livres d’une catégorie
        3. La classe AmazonResultSet
        4. Utilisation de REST pour effectuer une requête et récupérer un résultat
        5. Utilisation de SOAP pour effectuer une requête et récupérer un résultat
        6. Mise en cache des réponses à une requête
        7. Construction du panier virtuel
        8. Passer la commande auprès d’Amazon
      4. Installation du code du projet
      5. Extension du projet
      6. Pour aller plus loin
    10. 32. Construction d’applications web 2.0 avec Ajax
      1. Introduction à Ajax
        1. Requêtes et réponses HTTP
        2. DHTML et XHTML
        3. CSS
        4. Programmation côté client
        5. Programmation côté serveur
        6. XML et XSLT
      2. Présentation d’Ajax
        1. L’objet XMLHTTPRequest
        2. Communication avec le serveur
        3. Utilisation de la réponse du serveur
        4. Rassemblement des composants
      3. Ajouter des éléments Ajax à des projets existants
        1. Ajouter des éléments Ajax à PHPbookmark
      4. Pour aller plus loin
        1. En savoir plus sur le DOM (Document Object Model)
        2. Bibliothèques JavaScript pour les applications Ajax
        3. Sites consacrés au développement Ajax
  11. Partie VI. Annexes
    1. Annexe A. Installation de PHP et de MySQL
      1. Installation d’Apache, PHP et MySQL sous Unix
        1. Installation à partir de binaires
        2. Installation à partir des sources
        3. Installation de MySQL
        4. Installation de PHP
        5. Modification du fichier httpd.conf
        6. Test du fonctionnement de PHP
        7. Test du fonctionnement de SSL
      2. Installation d’Apache, de PHP et de MySQL sous Windows
        1. Installation de MySQL sous Windows
        2. Installation d’Apache sous Windows
        3. Installation de PHP sous Windows
      3. Installation de PEAR
      4. Autres configurations
    2. Annexe B. Ressources web
      1. Ressources PHP
      2. Ressources MySQL et SQL
      3. Ressources Apache
      4. Développement web
  12. Index