Pratique de MySQL et PHP- P9 ppt

5 300 0
Pratique de MySQL et PHP- P9 ppt

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

Thông tin tài liệu

18 Chapitre 1. Introduction à MySQL et PHP 1.2 PROGRAMMATION WEB AVEC MySQL ET PHP Après cette introduction générale, nous en arrivons maintenant aux deux outils que nous allons associer pour développer des applications web avec simplicité et puissance. 1.2.1 MySQL MySQL est un Système de Gestion de Bases de Données (SGBD) qui gère pour vous les fichiers constituant une base, prend en charge les fonctionnalités de protection et de sécurité et fournit un ensemble d’interfaces de programmation (dont une avec PHP) facilitant l’accès aux données. La complexité de logiciels comme MySQL est due à la diversité des techniques mises en œuvre, à la multiplicité des composants intervenant dans leur architecture, et également aux différents types d’utilisateurs (administrateurs, programmeurs, non informaticiens, ) confrontés, à différents niveaux, au système. Au cours de ce livre nous aborderons ces différents aspects, tous ne vous étant d’ailleurs pas utiles, en par- ticulier si votre objectif n’est pas d’administrer une base MySQL. Pour l’instant, nous nous contenterons de décrire l’essentiel, à savoir son architecture et ses composants. MySQL consiste en un ensemble de programmes chargés de gérer une ou plusieurs bases de données, et qui fonctionnent selon une architecture client/serveur (voir figure 1.4). de données Base Client mysql Client Client Client mysqldump mysqlimport Apache/PHP Serveur mysqld Connexion Connexion Connexion Connexion Figure 1.4 — Serveur et clients de MySQL. Le serveur mysqld. Le processus mysqld est le serveur de MySQL. Lui seul peut accéder aux fichiers stockant les données pour lire et écrire des informations. Utilitaires. MySQL fournit tout un ensemble de programmes, que nous appellerons utilitaires par la suite, chargés de dialoguer avec mysqld, par l’intermédiaire d’une connexion, pour accomplir un type de tâche particulier. Par exemple, mysqldump permet d’effectuer des sauvegardes, mysqlimport peut importer des fichiers ASCII dans une base, etc. Le client le plus simple est simplement nommé mysql,et permet d’envoyer directement des commandes au serveur. 1.2 Programmation web avec MySQL et PHP 19 La base de données est un ensemble de fichiers stockant les informations selon un format propre à MySQL et qui peut – doit – rester inconnu à l’utilisateur. Le serveur est le seul habilité à lire/écrire dans ces fichiers, en fonction de demandes effectuées par des clients MySQL. Plusieurs clients peuvent accéder simultanément à une même base. Le serveur se charge de coordonner ces accès. Les clients de MySQL communiquent avec le serveur pour effectuer des recherches ou des mises à jour dans la base. Cette communication n’est pas limitée à des processus situés sur la même machine : il est possible de s’adresser au serveur MySQL par un réseau comme l’Internet. Dans une application PHP, le client est le serveur web (souvent Apache) qui n’est pas forcément situé sur la même machine que le processus mysqld. Il est possible de créer soi-même son propre client MySQL en utilisant des outils de programmation qui se présentent sous la forme d’un ensemble de fonctions, habituellement désigné par l’acronyme API pour Application Programming Interface. MySQL fournit une API en langage C, à partir de laquelle plusieurs autres ont été créées, dont une API en PHP. Comme tous les autres clients de MySQL, un script PHP en association avec Apache doit établir une connexion avec le serveur pour pouvoir dialoguer avec lui et rechercher ou mettre à jour des données (figure 1.4). Bases de données relationnelles MySQL est un SGBD relationnel, comme beaucoup d’autres dont ORACLE, Post- greSQL, SQL Server, etc. Le point commun de tous ces systèmes est de proposer une représentation extrêmement simple de l’information sous forme de table. Voici une table relationnelle Film, donnant la description de quelques films. titre année nom_realisateur prénom_realisateur annéeNaiss Alien 1979 Scott Ridley 1943 Vertigo 1958 Hitchcock Alfred 1899 Psychose 1960 Hitchcock Alfred 1899 Kagemusha 1980 Kurosawa Akira 1910 Volte-face 1997 Woo John 1946 Pulp Fiction 1995 Tarantino Quentin Titanic 1997 Cameron James 1954 Sacrifice 1986 Tarkovski Andrei 1932 Il y a quelques différences essentielles entre cette représentation et le stockage dans un fichier. D’une part, les informations sont conformes à une description précise. Ici la table s’appelle Film, et elle comprend un ensemble d’attributs comme titre, année, etc. Une base de données est constituée d’une ou plusieurs tables, dont les descriptions sont connues et gérées par le serveur. Nous verrons qu’il est possible, via un langage simple, de spécifier le format d’une table, ainsi que le type des attributs et les contraintes qui s’appliquent aux données. Par exemple : il ne doit pas exister deux filmsaveclemêmetitre. Tout ce qui concerne la description des données, et pas les données elles-mêmes, constitue le schéma de la base de données. 20 Chapitre 1. Introduction à MySQL et PHP Les SGBD relationnels offrent non seulement une représentation simple et puis- sante, mais également un langage, SQL, pour interroger ou mettre à jour les données. SQL est incomparablement plus facile à utiliser qu’un langage de programmation classique comme le C. Voici par exemple comment on demande la liste des titres de film parus après 1980. SELECT titre FROM Film WHERE annee > 1980 Cette approche très simple se contente d’indiquer ce que l’on veut obtenir, à charge pour le SGBD de déterminer comment on peut l’obtenir. SQL est un lan- gage déclaratif qui permet d’interroger une base sans se soucier de la représentation interne des données, de leur localisation, des chemins d’accès ou des algorithmes nécessaires. À ce titre il s’adresse à une large communauté d’utilisateurs potentiels (pas seulement des informaticiens) et constitue un des atouts les plus spectaculaires (et le plus connu) des SGBD relationnels. On peut l’utiliser de manière interactive, mais également en association avec des interfaces graphiques, des outils de reporting ou, généralement, des langages de programmation. Ce dernier aspect est important en pratique car SQL ne permet pas de faire de la programmation au sens courant du terme et doit donc être associé avec un langage comme PHP quand on souhaite effectuer des manipulations complexes. 1.2.2 PHP Le langage PHP a été créé par Rasmus Lerdorf en 1994, pour ses besoins personnels. Comme dans beaucoup d’autres cas, la mise à disposition du langage sur l’Internet est à l’origine de son développement par d’autres utilisateurs qui y ont vu un outil propre à satisfaire leurs besoins. Après plusieurs évolutions importantes, PHP en est à sa version 5.2, celle que nous utilisons. La version 6 est annoncée à l’heure où ces lignes sont écrites. PHP – le plus souvent associé à MySQL – est à l’heure actuelle le plus répandu des langages de programmations pour sites web. Qu’est-ce que PHP PHP est un langage de programmation, très proche syntaxiquement du langage C, destiné à être intégré dans des pages HTML. Contrairement à d’autres langages, PHP est principalement dédié à la production de pages HTML générées dynamiquement. Voici un premier exemple. Exemple 1.3 exemples/ExPHP1.php : Premier exemple PHP <?xml version="1.0 " encoding=" iso −8959−1"?> <!DOCTYPE html PUBLIC " −/ /W3C / / DTD XHTML 1 . 0 S t r i c t / / EN " "http ://www.w3. org /TR/xhtml1/DTD/xhtml1−strict .dtd"> <html xmlns="http ://www.w3. org/1999/xhtml" xml: lang="fr " > <head> <title >HTML avec PHP</title > 1.2 Programmation web avec MySQL et PHP 21 < link rel=’stylesheet ’ href="films .css" type="text / css"/> </head> <body> <h1>HTML + PHP</h1> Nous sommes le <?php echo Date ( " j /m/Y" ) ; ?> <p> <?php echo " J e s u i s " . $_SERVER [ ’HTTP_USER_AGENT ’ ] . "< b r / > " ; echo "Je dialogue avec " . $_SERVER[ ’SERVER_NAME’ ]; ?> </p> </body> </html> Il s’agit d’un document contenant du code HTML classique, au sein duquel on a introduit des commandes encadrées par les balises <?php et ?> (on appellera « scripts » les documents HTML/PHP à partir de maintenant). Tout ce qui se trouve entre ces commandes est envoyé à un interpréteur du langage PHP intégré à Apache. Cet interpréteur lit les instructions et les exécute. REMARQUE – Certaines configurations de PHP acceptent des balises PHP dites « courtes » ( <? et ?>) qui sont incompatibles avec XML et donc avec le langage XHTML que nous utilisons. Les scripts PHP écrits avec ces balises courtes ne sont pas portables : je vous déconseille fortement de les utiliser. Ici on a deux occurrences de code PHP . La première fait partie de la ligne suivante : Nous sommes le <?php echo Date ("j/m/Y"); ?> Le début de la ligne est du texte traité par le serveur Apache comme du HTML. Ensuite, on trouve une instruction echo Date ("j/m/Y");.Lafonctionecho() est l’équivalent du printf() utilisé en langage C. Elle écrit sur la sortie standard, laquelle est directement transmise au navigateur par le serveur web. La fonction PHP date() récupère la date courante et la met en forme selon un format donné (ici, la chaîne j/m/Y qui correspond à jour, mois et année sur quatre chiffres). La syntaxe de PHP est relativement simple, et la plus grande partie de la richesse du langage réside dans ses innombrables fonctions. Il existe des fonctions pour créer des images, pour générer du PDF, pour lire ou écrire dans des fichiers, et – ce qui nous intéresse particulièrement – pour accéder à des bases de données. REMARQUE – Le langage PHP est introduit progressivement à l’aide d’exemples. Si vous souhaitez avoir dès maintenant un aperçu complet du langage, r eportez-vous au chapitre 11, page 419, qui en présente la syntaxe et peut se lire indépendamment. 22 Chapitre 1. Introduction à MySQL et PHP Le script ExPHP1.php illustre un autre aspect essentiel du langage. Non seulement il s’intègre directement avec le langage HTML, mais toutes les variables d’environne- ment décrivant le contexte des communications entre le navigateur et le serveur web sont directement accessibles sous forme de variables PHP. Tous les noms de variables de PHP débutent par un « $ ». Voici la première ligne du script dans laquelle on insère une variable transmise par le serveur. echo "Je suis ". $_SERVER[’HTTP_USER_AGENT’] . "<br/>"; Le point « . » désigne l’opérateur de concaténation de chaîne en PHP. La com- mande echo envoie donc sur la sortie standard une chaîne obtenue en concaténant les trois éléments suivants : • une sous-chaîne contenant le texte « Je suis » • la chaîne correspondant au contenu de la variable HTTP_USER_AGENT ; • la chaîne contenant la balise HTML <br/>. Cette création de contenu par concaténation de texte simple, de variables PHP et de balises HTML est l’une des principales forces de PHP. Le point le plus important ici est l’exploitation de la variable HTTP_USER_AGENT qui représente le navigateur qui a demandé l’exécution du script. Cette variable est l’un des éléments du tableau PHP $_SERVER automatiquement créé par le serveur et transmis au script PHP. Ce tableau est de type « tableau associatif », chaque élément étant référencé par un nom. L’élément correspondant au nom du serveur est référencé par SERVER_NAME et se trouve donc accessible dans le tableau avec l’expression $_SERVER[’SERVER_NAME’]. C’est le cas de toutes les variables d’environnement (voir tableau 1.1, page 16). Un script PHP a accès à plusieurs tableaux associatifs pour récupérer les variables d’environnement ou celles transmises via HTTP. La table 1.2 donne la liste de ces tableaux. Tableau 1.2 — Tableaux prédéfinis de PHP Tableau associatif Contenu $_SERVER Contient les variables d’environnement énumérées dans la table 1.1, page 16 (comme SERVER_NAME, CONTENT_TYPE, etc), ainsi que des variables propres à l’environnement PHP comme PHP_SELF,le nom du script courant. $_ENV Contient les variables d’environnement système, que l’on peut égale- ment récupérer par la fonction getenv(). $_COOKIE Contient les cookies transmis au script. $_GET Contient les paramètres HTTP transmis en mode get. $_POST Contient les paramètres HTTP transmis en mode post. $_FILES Contient la liste des fichiers transmis au serveur par le navigateur. $_REQUEST Contient toutes les variables des quatre tableaux précédents. $_SESSION Contient les variables de session PHP. $GLOBALS Contient les variables globales du script. . association avec des interfaces graphiques, des outils de reporting ou, généralement, des langages de programmation. Ce dernier aspect est important en pratique car SQL ne permet pas de faire de la programmation. importer des fichiers ASCII dans une base, etc. Le client le plus simple est simplement nommé mysql, et permet d’envoyer directement des commandes au serveur. 1.2 Programmation web avec MySQL et PHP. fonction de demandes effectuées par des clients MySQL. Plusieurs clients peuvent accéder simultanément à une même base. Le serveur se charge de coordonner ces accès. Les clients de MySQL communiquent

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

Mục lục

  • 1.1.2 Documents web : le langage XHTML

  • 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

      • 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 ?

Tài liệu cùng người dùng

Tài liệu liên quan