1. Trang chủ
  2. » Công Nghệ Thông Tin

Pratique de MySQL et PHP- P4 docx

5 331 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Table des Matières

  • Avant-propos

  • Première partie – Programmation web avec MySQL/PHP

    • Chapitre 1 – Introduction à MySQL et PHP

      • 1.1 Introduction au Web et à la programmation web

        • 1.1.1 Serveurs web

        • 1.1.2 Documents web : le langage XHTML

        • 1.1.3 Programmation web

        • 1.1.4 Sessions

      • 1.2 Programmation web avec MySQL et PHP

        • 1.2.1 MySQL

        • 1.2.2 PHP

      • 1.3 Une première base MySQL

        • 1.3.1 Création d'une table

        • 1.3.2 L'utilitaire mysql

        • 1.3.3 L'interface PhpMyAdmin

      • 1.4 Accès à MySQL avec PHP

        • 1.4.1 L'interface MySQL/PHP

        • 1.4.2 Formulaires d'interrogation

        • 1.4.3 Formulaires de mises à jour

    • Chapitre 2 – Techniques de base

      • 2.1 Programmation avec fonctions

        • 2.1.1 Création de fonctions

        • 2.1.2 Utilisation des fonctions

        • 2.1.3 À propos de require et include

        • 2.1.4 Passage par valeur et passage par référence

      • 2.2 Traitement des données transmises par HTTP

        • 2.2.1 Échappement et codage des données HTTP

        • 2.2.2 Contrôle des données HTTP

        • 2.2.3 Comment insérer dans la base de données : insertion dans MySQL

        • 2.2.4 Traitement de la réponse

        • 2.2.5 Comment obtenir du texte « pur » : envoi de l'e-mail

        • 2.2.6 En résumé : traitement des requêtes et des réponses

      • 2.3 Mise à jour d'une base par formulaire

        • 2.3.1 Script d'insertion et de mise à jour

        • 2.3.2 Validation des données et expressions régulières

      • 2.4 Transfert et gestion de fichiers

        • 2.4.1 Transfert du client au serveur

        • 2.4.2 Transfert du serveur au client

      • 2.5 Sessions

        • 2.5.1 Comment gérer une session web ?

        • 2.5.2 Gestion de session avec cookies

        • 2.5.3 Prise en charge des sessions dans PHP

      • 2.6 SQL dynamique et affichage multi-pages

        • 2.6.1 Affichage d'une requête dynamique

        • 2.6.2 Affichage multi-pages

    • Chapitre 3 - Programmation objet

      • 3.1 Tour d'horizon de la programmation objet

        • 3.1.1 Principes de la programmation objet

        • 3.1.2 Objets et classes

        • 3.1.3 Les exceptions

        • 3.1.4 Spécialisation : classes et sous-classes

        • 3.1.5 Spécialisation et classes abstraites : la classe BD

        • 3.1.6 Résumé

      • 3.2 La classe Tableau

        • 3.2.1 Conception

        • 3.2.2 Utilisation

        • 3.2.3 Implantation

      • 3.3 La classe Formulaire

        • 3.3.1 Conception

        • 3.3.2 Utilisation

        • 3.3.3 Implantation

      • 3.4 La classe IhmBD

        • 3.4.1 Utilisation

        • 3.4.2 Implantation

  • Deuxième partie – Conception et création d’un site

    • Chapitre 4 – Création d'une base MySQL

      • 4.1 Conception de la base

        • 4.1.1 Bons et mauvais schémas

        • 4.1.2 Principes généraux

        • 4.1.3 Création d'un schéma E/A

      • 4.2 Schéma de la base de données

        • 4.2.1 Transcription des entités

        • 4.2.2 Associations de un à plusieurs

        • 4.2.3 Associations de plusieurs à plusieurs

      • 4.3 Création de la base Films avec MySQL

        • 4.3.1 Tables

        • 4.3.2 Contraintes

        • 4.3.3 Modification du schéma

    • Chapitre 5 – Organisation du développement

      • 5.1 Choix des outils

        • 5.1.1 Environnement de développement intégré Eclipse

        • 5.1.2 Développement en équipe : Subversion

        • 5.1.3 Production d'une documentation avec PhpDoc

        • 5.1.4 Tests unitaires avec PhpUnit

        • 5.1.5 En résumé

      • 5.2 Gestion des erreurs

        • 5.2.1 Erreurs syntaxiques

        • 5.2.2 Gestion des erreurs en PHP

        • 5.2.3 Les exceptions PHP

        • 5.2.4 Gestionnaires d'erreurs et d'exceptions

      • 5.3 Portabilité multi-SGBD

        • 5.3.1 Précautions syntaxiques

        • 5.3.2 Le problème des séquences

        • 5.3.3 PDO, l'interface générique d'accès aux bases relationnelles

    • Chapitre 6 – Architecture du site : le pattern MVC

      • 6.1 Le motif de conception MVC

        • 6.1.1 Vue d'ensemble

        • 6.1.2 Le modèle

        • 6.1.3 La vue

        • 6.1.4 Contrôleurs et actions

        • 6.1.5 Organisation du code et conventions

      • 6.2 Structure d'une application MVC : contrôleurs et actions

        • 6.2.1 Le fichier index.php

        • 6.2.2 Le contrôleur frontal

        • 6.2.3 Créer des contrôleurs et des actions

      • 6.3 Structure d'une application MVC : la vue

        • 6.3.1 Les templates

        • 6.3.2 Combiner des templates

        • 6.3.3 Utilisation d'un moteur de templates comme vue MVC

        • 6.3.4 Exemple complet

        • 6.3.5 Discussion

      • 6.4 Structure d'une application MVC : le modèle

        • 6.4.1 Modèle et base de données : la classe TableBD

        • 6.4.2 Un exemple complet de saisie et validation de données

        • 6.4.3 Pour conclure

    • Chapitre 7 – Production du site

      • 7.1 Authentification

        • 7.1.1 Problème et solutions

        • 7.1.2 Contrôleur d'authentification et de gestion des sessions

        • 7.1.3 Les actions de login et de logout

      • 7.2 Recherche, présentation, notation des films

        • 7.2.1 Outil de recherche et jointures SQL

        • 7.2.2 Notation des films

      • 7.3 Affichage des films et forum de discussion

      • 7.4 Recommandations

        • 7.4.1 Algorithmes de prédiction

        • 7.4.2 Agrégation de données avec SQL

        • 7.4.3 Recommandations de films

    • Chapitre 8 – XML

      • 8.1 Introduction à XML

        • 8.1.1 Pourquoi XML ?

        • 8.1.2 XML et HTML

        • 8.1.3 Syntaxe de XML

      • 8.2 Export de données XML

        • 8.2.1 Comment passer d'une base MySQL à XML

        • 8.2.2 Application avec PHP

      • 8.3 Import de données XML dans MySQL

        • 8.3.1 Simple XML

        • 8.3.2 L'API SAX

        • 8.3.3 Une classe de traitement de documents XML

      • 8.4 Mise en forme de documents avec XSLT

        • 8.4.1 Quelques mots sur XSLT

        • 8.4.2 Application d'un programme XSLT avec PHP

  • Troisième partie – Compléments

    • Chapitre 9 – Introduction au Zend Framework

      • 9.1 Mise en route

        • 9.1.1 Installation d'une application ZF

        • 9.1.2 Redirection des requêtes avec le ZF

        • 9.1.3 Organisation et conventions

        • 9.1.4 Routage des requêtes dans une application Zend

        • 9.1.5 Configuration

        • 9.1.6 Connexion à la base de données

        • 9.1.7 Le registre

        • 9.1.8 Contrôleurs, actions et vues

      • 9.2 Accès à la base de données

        • 9.2.1 Interrogation

        • 9.2.2 Insertion et mise à jour

      • 9.3 Le MVC du Zend Framework

        • 9.3.1 L'objet request

        • 9.3.2 L'objet response

        • 9.3.3 Gérer les exceptions

      • 9.4 La vue dans le Zend Framework

        • 9.4.1 Les vues sont des scripts PHP

        • 9.4.2 Le layout

        • 9.4.3 Créer des Helpers

      • 9.5 Le composant Modèle du Zend Framework

        • 9.5.1 L'ORM du Zend Framework

        • 9.5.2 Le modèle ORM de l'application

        • 9.5.3 Manipulation des données avec les classes ORM

      • 9.6 Pour conclure

    • Chapitre 10 – Récapitulatif SQL

      • 10.1 Sélections

        • 10.1.1 Renommage, fonctions et constantes

        • 10.1.2 La clause DISTINCT

        • 10.1.3 La clause ORDER BY

        • 10.1.4 La clause WHERE

        • 10.1.5 Dates

        • 10.1.6 Valeurs nulles

        • 10.1.7 Clauses spécifiques à MySQL

      • 10.2 Jointures

        • 10.2.1 Interprétation d'une jointure

        • 10.2.2 Gestion des ambiguïtés

        • 10.2.3 Jointures externes

      • 10.3 Opérations ensemblistes

      • 10.4 Requêtes imbriquées

        • 10.4.1 Exemples de requêtes imbriquées

        • 10.4.2 Requêtes corrélées

        • 10.4.3 Requêtes avec négation

      • 10.5 Agrégation

        • 10.5.1 La clause GROUP BY

        • 10.5.2 La clause HAVING

      • 10.6 Mises à jour

        • 10.6.1 Insertion

        • 10.6.2 Destruction

        • 10.6.3 Modification

    • Chapitre 11 – Récapitulatif PHP

      • 11.1 Généralités

        • 11.1.1 Commentaires

        • 11.1.2 Variables et littéraux

        • 11.1.3 Constantes

      • 11.2 Types

        • 11.2.1 Types numériques et booléens

        • 11.2.2 Chaînes de caractères

        • 11.2.3 Tableaux

        • 11.2.4 Conversion et typage

      • 11.3 Expressions

      • 11.4 Opérateurs

        • 11.4.1 Concaténation de chaînes

        • 11.4.2 Incrémentations

        • 11.4.3 Opérateurs de bits

        • 11.4.4 Opérateurs logiques

      • 11.5 Structures de contrôle

        • 11.5.1 Tests

        • 11.5.2 Boucles

        • 11.5.3 Les instructions break et continue

      • 11.6 Fonctions

        • 11.6.1 Passage des arguments

        • 11.6.2 Valeurs par défaut

        • 11.6.3 Fonctions et variables

      • 11.7 Programmation orientée-objet

        • 11.7.1 Classes et objets

        • 11.7.2 Constructeurs et destructeurs

        • 11.7.3 Sous-classes

        • 11.7.4 Manipulation des objets

        • 11.7.5 Compléments

  • Quatrième partie – Annexes

    • Annexe A – Installation Apache/PHP/MySQL

      • A. 1 Mot de passe root

      • A. 2 Création de bases et d'utilisateurs

        • A. 2.1 La commande GRANT

        • A. 2.2 Modification des droits d'accès

      • A. 3 Fichiers de configuration

        • A. 3.1 Format d'un fichier de configuration

        • A. 3.2 Les différents fichiers

        • A. 3.3 Configuration du serveur

        • A. 3.4 Configuration d'un compte administrateur

      • A. 4 Sauvegardes

      • A. 5 phpMyAdmin

    • Annexe B – Référence MySQL

      • B. 1 Types de données MySQL

      • B. 2 Commandes de MySQL

      • B. 3 Fonctions MySQL

    • Annexe C – Fonctions PHP

      • C. 1 Fonctions générales

      • C. 2 Chaînes de caractères

      • C. 3 Dates

      • C. 4 Tableaux

      • C. 5 Fonctions XML

      • C. 6 Accès aux fichiers

      • C. 7 Interface PHP/MySQL

  • Index général

  • Index des fonctions PHP

  • Index des commandes SQL

  • Table des figures

Nội dung

Avant-propos Quand la première édition de ce livre est parue, en janvier 2001, la réputation de MySQL et de PHP était déjà bien établie. Ces deux outils étaient connus pour être fiables, performants, pratiques et bien adaptés à une utilisation très spécialisée : la production dynamique de pages HTML. En revanche, pris isolément et dans un contexte plus général de développement d’applications bases de données, ni MySQL ni PHP ne semblaient en mesure de rivaliser avec des logiciels commerciaux nettement plus puissants et complets. Huit ans après cette première édition tout ou presque a changé. MySQL est un SGBD reconnu, doté de toutes les fonctionnalités requises pour un système relation- nel. La version 5 (et bientôt la version 6) de PHP est maintenant bien installée et constitue un langage de programmation abouti que ses concepteurs et développeurs se sont acharnés à améliorer pour le placer au même niveau que Java ou le C++. De plus la maturité de ces deux outils a favorisé la parution d’environnements de développement avancés, incluant tous les outils d’ingénierie logicielle (éditeurs intégrés, production de documentation, bibliothèques de fonctionnalités prêtes à l’emploi, débogueurs, etc.) qui les rendent aptes à la production de logiciels répon- dant à des normes de qualités professionnelles. Même pour des projets d’entreprise importants (plusieurs années-homme), l’association MySQL/PHP est devenue tout à fait compétitive par rapport à d’autres solutions parfois bien plus lourdes à concevoir, mettre en place et entretenir. Objectifs et contenu de ce livre Ce livre présente l’utilisation de MySQL et de PHP pour la production et l’ex- ploitation de sites web s’appuyant sur une base de données. Son principal objectif est d’exposer de la manière la plus claire et la plus précise possible les techniques utilisées pour la création de sites web interactifs avec MySQL/PHP. Il peut s’énoncer simplement ainsi : Donner au lecteur la capacité à résoudre lui-même tous les problèmes rencontrés dans ce type de développement, quelle que soit leur nature ou leur difficulté. Ce livre n’énumère pas toutes les fonctions PHP : il en existe des milliers et on les trouve très facilement dans la documentation en ligne sur http://www.php.net, toujours plus complète et à jour que n’importe quel ouvrage. Je ne donne pas non xvi Pratique de MySQL et PHP plus, sauf pour quelques exceptions, une liste de ressources sur le Web. Elles évoluent rapidement, et celles qui existent se trouvent de toute manière sans problème. En revanche, le livre vise à expliquer le plus clairement possible comment et pourquoi on en arrive à utiliser telle ou telle technique, et tente de donner au lecteur les moyens d’intégrer ces connaissances pour pouvoir les réutiliser le moment venu dans ses propres développements. La lecture de chaque chapitre doit permettre de progresser un peu plus dans la compréhension de la nature des problèmes (comment puis-je le résoudre ?) et de la méthode menant aux solutions (pourquoi PHP et MySQL sont-ils intéressants pour y arriver concisément et élégamment ?). Les concepts et outils sont donc présentés d’une manière pratique, progressive et complète. • Pratique. Ce livre ne contient pas d’exposé théorique qui ne soit justifié par une application pratique immédiate. Les connaissances nécessaires sur la programmation PHP, le langage SQL ou les bases de données relationnelles sont introduites au fur et à mesure des besoins de l’exposé. • Progressive. L’ordre de la présentation est conçu de manière à donner le plus rapidement possible des éléments concrets pour expérimenter toutes les tech- niques décrites. Le livre adopte ensuite une démarche très simple consistant à détailler depuis le début les étapes de construction d’un site basé sur MySQL et PHP, en fournissant un code clair, concis et aisément adaptable. • Complète. Idéalement, un seul livre contiendrait toutes les informations nécessaires à la compréhension d’un domaine donné. C’est utopique en ce qui concerne les techniques de gestion de sites web. J’ai cherché en revanche à être aussi complet que possible pour tout ce qui touche de près à la program- mation en PHP d’applications web s’appuyant sur une base de données. Ce livre vise par ailleurs à promouvoir la qualité technique de la conception et du développement, qui permettra d’obtenir des sites maintenables et évolutifs. MySQL et PHP sont des outils relativement faciles à utiliser, avec lesquels on obtient rapidement des résultats flatteurs, voire spectaculaires. Cela étant, il est bien connu qu’il est plus facile de développer un logiciel que de le faire évoluer. Une réalisation bâclée, si elle peut faire illusion dans un premier temps, débouche rapidement sur des problèmes récurrents dès qu’on entre en phase de maintenance et d’exploitation. Une seconde ambition, complémentaire de celle mentionnée précédemment, est donc d’introduire progressivement tout au long du livre des réflexions et des exemples qui montrent comment on peut arriver à produire des logiciels de plus en plus complexes en maîtrisant la conception, le développement et l’enrichissement permanent de leurs fonctionnalités. Cette maîtrise peut être obtenue par des tech- niques de programmation, par la mise en œuvre de concepts d’ingénierie logicielle éprouvés depuis de longues années et enfin par le recours à des environnements de programmation avancés (les « frameworks »). Cette seconde ambition peut se résumer ainsi : Montrer progressivement au lecteur comment on passe de la réalisation de sites dynamiques légers à des applications professionnelles soumises à des exigences fortes de qualité. Avant-propos xvii Cette quatrième édition reprend pour l’essentiel Le contenu de la précédente, avec des modifications visant, quand cela m’a semblé possible, à améliorer la clarté et la simplicité des exemples et des explications. J’ai ajouté un chapitre dédié aux envi- ronnements de programmation PHP/MySQL, en introduisant notamment le Zend Framework pour illustrer l’aboutissement actuel d’une démarche de normalisation de la production d’applications web basée sur des concepts qui ont fait leurs preuves. Ce chapitre vient bien sûr en fin d’ouvrage car il intéressera surtout ceux qui visent à réaliser des applications d’envergure. Les autres pourront se satisfaire des techniques présentées dans les chapitres précédents, qui demandent un apprentissage initial moins ardu. Un souci constant quand on écrit ce genre d’ouvrage est de satisfaire le plus grand nombre de lecteurs, quels que soient leurs connaissances de départ ou leurs centres d’intérêt. J’espère que les évolutions apportées et la réorganisation du livre atteindront cet objectif. Audience et pré-requis Ce livre est en principe auto-suffisant pour ce qui concerne son sujet : la program- mation d’applications web dynamiques avec MySQL et PHP. Il est clair qu’au départ une compréhension des notions informatiques de base (qu’est-ce qu’un réseau, un fichier, un éditeur de texte, un langage de programmation, une compilation, etc.) est préférable. Je suppose également connues quelques notions préalables comme la nature de l’Internet et du Web, les notions de client web (navigateur) et de serveur web, et les bases du langage HTML. On trouve très facilement des tutoriaux en ligne sur ces sujets. Les techniques de programmation PHP, des plus simples (mise en forme HTML de données) aux plus complexes (divers exemples de programmation orientée-objet) sont introduites et soigneusement expliquées au fur et à mesure de la progression des chapitres. Le livre comprend également des exposés complets sur la conception de bases de données relationnelles et le langage SQL. Aucune connaissance préalable sur les bases de données n’est ici requise. Un site web complète ce livre, avec des exemples, le code de l’application W EBSCOPE dont je décris pas à pas la réalisation, des liens utiles et des compléments de documentation. Voici son adresse : http://www.lamsade.dauphine.fr/rigaux/mysqlphp Le « W EBSCOPE » dont le développement est traité de manière complète dans la seconde partie est une application de « filtrage coopératif » consacrée au cinéma. Elle propose des outils pour rechercher des films, récents ou classiques, consulter leur fiche, leur résumé, leur affiche. L’internaute peut également noter ces films en leur attribuant une note de 1 à 5. À terme, le site dispose d’un ensemble suffisant d’informations sur les goûts de cet internaute pour lui proposer des films susceptibles de lui plaire. Vous pouvez vous faire une idée plus précise de ce site en le visitant et en l’utilisant, à l’adresse suivante : http://www.lamsade.dauphine.fr/rigaux/webscope xviii Pratique de MySQL et PHP Une fois le code récupéré, vous pouvez bien sûr l’utiliser, le consulter ou le modi- fier pour vos propres besoins. Par ailleurs, si vous souhaitez vous initier aux techniques de développement en groupe, j’ai ouvert sur SourceForge.net un projet W EBSCOPE consacré à ce site. Vous pourrez participer, avec d’autres lecteurs, à l’amélioration du code ainsi qu’à son extension, et apprendre à utiliser des outils logiciels avancés pour le développement de logiciels Open Source.Lesitedeceprojetest http://webscope.sourceforge.net Comment apprendre à partir du livre À l’issue de la lecture de ce livre, vous devriez maîtriser suffisamment l’ensemble des concepts et outils nécessaires aux applications MySQL/PHP pour être autonome (ce qui n’exclut pas, au contraire, le recours aux diverses ressources et références disponibles sur le Web). L’acquisition de cette maîtrise suppose bien entendu une implication personnnelle qui peut s’appuyer sur les éléments suivants : 1. la lecture attentive des explications données dans le texte ; 2. l’utilisation des exemples fournis, leur étude et leur modification partielle ; 3. des exercices à réaliser vous-mêmes. Pour tirer le meilleur parti des exemples donnés, il est souhaitable que vous dis- posiez dès le début d’un environnement de travail. Voici quelques recommandations pour mettre en place cet environnement en moins d’une heure. Le serveur de données et le serveur web Vous devez disposer d’un ordinateur équipé de MySQL et PHP. Il s’agit d’un envi- ronnement tellement standard qu’on trouve des packages d’installation partout. Les environnements Windows disposent de Xampp 1 et Mac OS de MAMP 2 . Ces logiciels se téléchargent et s’installent en quelques clics. Sous Linux ce n’est pas nécessaire- ment plus compliqué, mais l’installation peut dépendre de votre configuration. Une recherche « LAMP » sur le Web vous donnera des procédures d’installation rapide. La configuration Normalement, les systèmes AMP (Apache-MySQL-PHP) sont configurés correcte- ment et vous pouvez vous contenter de cette configuration par défaut au début. Un aspect parfois sensible est le fichier php.ini qui contient l’ensemble des paramètres fixant la configuration de PHP. La première chose à faire est de savoir où se trouve ce fichier. C’est assez simple : placez dans le répertoire htdocs de votre installation un fichier phpinfo.php avec le code suivant : <?php phpinfo(); ?> 1. http://www.apachefriends.org/en/xampp.html 2. http://www.mamp.info/en/index.php Avant-propos xix Accédez ensuite à l’URL http://localhost/phpinfo.php. Entre autres informations vous verrez l’emplacement de php.ini et tous les paramètres de configuration. Profitez de l’occasion pour vérifier les paramètres suivants (même si vous ne les comprenez pas pour l’instant) : 1. short_open_tags doit être à Off pour interdire d’utiliser des balises PHP abrégées ; 2. display_errors devrait valoir On ; 3. file_upload devrait valoir On. Cela devrait suffire pour pouvoir débuter sans avoir de souci. Le navigateur Vous devez utiliser un navigateur web pour tester les exemples et le site. Je vous recommande fortement Firefox, qui présente l’avantage de pouvoir intégrer des modules très utiles (les plugins) qui le personnalisent et l’adaptent à des tâches particulières. L’extension Web Developer est particulièrement intéressante pour les développements web car elle permet de contrôler tous les composants transmis par le serveur d’une application web dynamique au navigateur. Figure 1 — Barre d’outils Web Developer La figure 1 montre l’intégration de Web Developer à Firefox sous la forme d’une barre d’outils offrant des possibilités d’inspection et de manipulation des composants CSS, JavaScript, cookies, etc. Ces possibilités s’avèrent extrêmement utiles pour la vérification des composants clients. Dans la mesure où il ne s’agit pas de notre préoccupation principale pour ce livre, je ne détaille pas plus les possibilités offertes. Une fonction très simple et très utile est la validation du code HTML fourni au navigateur. La figure montre, sur la droite de la barre d’outils, des indicateurs . l’utilisation de MySQL et de PHP pour la production et l’ex- ploitation de sites web s’appuyant sur une base de données. Son principal objectif est d’exposer de la manière la plus claire et la plus. de la conception et du développement, qui permettra d’obtenir des sites maintenables et évolutifs. MySQL et PHP sont des outils relativement faciles à utiliser, avec lesquels on obtient rapidement. la nature de l’Internet et du Web, les notions de client web (navigateur) et de serveur web, et les bases du langage HTML. On trouve très facilement des tutoriaux en ligne sur ces sujets. Les

Ngày đăng: 06/07/2014, 00:20

TỪ KHÓA LIÊN QUAN