Introduction à MySQL et PHP 1 Ce chapitre est une introduction à l’association de MySQL et de PHP pour la production de documents « dynamiques », autrement dit créés à la demande par un programme. Nous commençons par une courte introduction au web et à la programmation web, limitée aux pré-requis indespensables pour comprendre la suite du livre. Les lecteurs déjà familiers avec ces bases peuvent sauter sans dommage la section 1.1. 1.1 INTRODUCTION AU WEB ET À LA PROGRAMMATION WEB Le World-Wide Web (ou WWW, ou Web) est un grand – très grand – système d’information réparti sur un ensemble de sites connectés par le réseau Internet. Ce système est essentiellement constitué de documents hypertextes, ce terme pouvant être pris au sens large : textes, images, sons, vidéos, etc. Chaque site propose un ensemble plus ou moins important de documents, transmis sur le réseau par l’intermédiaire d’un programme serveur. Ce programme serveur dialogue avec un programme client qui peut être situé n’importe où sur le réseau. Le programme client prend le plus souvent la forme d’un navigateur, grâce auquel un utilisateur du Web peut demander et consulter très simplement des documents. Le Web propose aussi des services ou des modes de communication entre machines permettant d’effectuer des calculs répartis ou des échanges d’information sans faire intervenir d’utilisateur : le présent livre n’aborde pas ces aspects. Le dialogue entre un programme serveur et un programme client s’effectue selon des règles précises qui constituent un protocole. Le protocole du Web est HTTP, mais il est souvent possible de communiquer avec un site via d’autres protocoles, comme 4 Chapitre 1. Introduction à MySQL et PHP par exemple FTP qui permet d’échanger des fichiers. Ce livre n’entre pas dans le détail des protocoles, même si nous aurons occasionnellement à évoquer certains aspects de HTTP. 1.1.1 Serveurs web Un site est constitué, matériellement, d’un ordinateur connecté à l’Internet, et d’un programme tournant en permanence sur cet ordinateur, le serveur. Le programme serveur est en attente de requêtes transmises à son attention sur le réseau par un programme client. Quand une requête est reçue, le programme serveur l’analyse afin de déterminer quel est le document demandé, recherche ce document et le transmet au programme client. Un autre type important d’interaction consiste pour le programme client à demander au programme serveur d’exécuter un programme, en fonction de paramètres, et de lui transmettre le résultat. La figure 1.1 illustre les aspects essentiels d’une communication web pour l’accès à un document. Elle s’effectue entre deux programmes. La requête envoyée par le programme client est reçue par le programme serveur. Ce programme se charge de rechercher le document demandé parmi l’ensemble des fichiers auxquels il a accès, et transmet ce document. Programme client Documents requêtes document(s) document(s) Internet Programme serveur Machine du client Machine du serveur Figure 1.1 — Architecture web Dans tout ce qui suit, le programme serveur sera simplement désigné par le terme « serveur » ou par le nom du programme particulier que nous utilisons, Apache. Les termes « navigateur » et « client » désigneront tous deux le programme client (Firefox, Safari, Internet Explorer, etc.). Enfin, le terme « utilisateur » (ou, parfois, « internaute »), sera réservé à la personne physique qui utilise un programme client. 1.1.2 Documents web : le langage XHTML Les documents échangés sur le Web peuvent être de types très divers. Le principal est le document hypertexte, un texte dans lequel certains mots, ou groupes de mots, sont des liens,ouancres, donnant accès à d’autres documents. Le langage qui permet de 1.1 Introduction au Web et à la programmation web 5 spécifier des documents hypertextes, et donc de fait le principal langage du Web, est HTML. La présentation de HTML dépasse le cadre de ce livre. Il existe de très nombreux tutoriaux sur le Web qui décrivent le langage (y compris XHTML, la variante utilisée ici). Il faut noter que HTML est dédié à la présentation des documents d’un site, et ne constitue pas un langage de programmation. Son apprentissage (au moins pour un usage simple) est relativement facile. Par ailleurs, il existe de nombreux éditeurs de documents HTML – on peut citer DreamWeaver ou FrontPage sous Windows, Quanta+ sous Linux – qui facilitent le travail de saisie des balises et fournissent une aide au positionnement (ou plus exactement au pré-positionnement puisque c’est le navigateur qui sera en charge de la mise en forme finale) des différentes parties du document (images, menus, textes, etc.). Notre objectif dans ce livre n’étant pas d’aborder les problèmes de mise en page et de conception graphique de sites web, nous nous limiterons à des documents HTML relativement simples, en mettant l’accent sur leur intégration avec PHP et MySQL. Voici un exemple simple du type de document HTML que nous allons créer. Notez les indications en début de fichier (DOCTYPE) qui déclarent un contenuse conformant à la norme XHTML. Exemple 1.1 exemples/ExHTML2.html : Un exemple de document XHTML <?xml version=" 1.0 " encoding=" iso −8959−1"?> <!DOCTYPE h t m l 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>Pratique de MySQL et PHP</ title> < link rel =’stylesheet ’ href="films .css" type=" text / css "/> </head> <body> <h1> Pratique de <ahref="http ://www.mysql.com">MySQL</a> et <ahref= " h tt p : / / www. php . ne t " >PHP< / a> </h1> <hr /> Ce livre , publié aux <ahref=" http : / /www. dunod . f r ">Éditions <i >Dunod< / i ></ a>, est consacré aux techniques de création de sites à l ’ aide du langage <ahref="http ://www.php.net"><b>PHP< / b>< / a>et du serveur <ahref="http ://www. mysql.com"><b>MySQL< / b>< / a>. </body> </html> 6 Chapitre 1. Introduction à MySQL et PHP XHTML, une variante de HTML. La variante utilisée dans nos exemples est XHTML, une déclinaison de HTML conforme aux règles de constitution des documents XML, un autre langage de description que nous étudierons dans le chapitre 8. XHTML impose des contraintes rigoureuses, ce qui représente un atout pour créer des sites portables et multi- navigateurs. Je vous conseille d’équiper votre navigateur d’un validateur HTML (comme Web Developer pour Firefox) qui vous indiquera si vos pages sont bien formées. Codage des documents. Nos documents sont encodés en ISO 8859 1 ou Latin1, un codage adapté aux langues européennes et facile à manipuler avec tous les éditeurs de texte disponibles sur les ordinateurs vendus en France. Si vous développez un site en multi-langues, il est recommandé d’adopter le codage UTF-8, qui permet par exemple de représenter des langues asiatiques. Il faut alors utiliser un éditeur qui permet de sauvegarder les documents dans ce codage. Référencement des documents Un des principaux mécanismes du Web est le principe de localisation, dit Universal Resource Location (URL), qui permet de faire référence de manière unique à un document. Une URL est constituée de plusieurs parties : • le nom du protocole utilisé pour accéder à la ressource ; • le nom du serveur hébergeant la ressource ; • le numéro du port réseau sur lequel le serveur est à l’écoute ; • le chemin d’accès, sur la machine serveur, à la ressource. À titre d’exemple, voici l’URL du site web de ce livre : http://www.lamsade.dauphine.fr/rigaux/mysqlphp/index.html Cette URL s’interprête de la manière suivante : il s’agit d’un document accessible via le protocole HTTP, sur le serveur www.lamsade.dauphine.fr qui est à l’écoute sur le port 80 – numéro par défaut, donc non précisé dans l’URL – et dont le chemin d’accès et le nom sont respectivement rigaux/mysqlphp et index.html. La balise qui permet d’insérer des liens dans un document HTML est le conteneur <a> pour anchor – « ancre » en français. L’URL qui désigne le lien est un attribut de la balise. Voici par exemple comment on associe l’expression « pratique de MySQL et PHP » à son URL. <ahref="http ://www. lamsade. dauphine . fr / rigaux /mysqlphp"> Pratique de MySQL et PHP </a> À chaque lien dans un document HTML est associée une URL qui donne la localisation de la ressource. Les navigateurs permettent à l’utilisateur de suivre un 1.1 Introduction au Web et à la programmation web 7 lien par simple clic de souris, et se chargent de récupérer le document correspondant grâce à l’URL. Ce mécanisme rend transparentes dans la plupart des cas, les adresses des documents web pour les utilisateurs. Le Web peut être vu comme un immense, et très complexe, graphe de documents reliés par des liens hypertextes. Les liens présents dans un document peuvent donner accès non seulement à d’autres documents du même site, mais également à des documents gérés par d’autres sites, n’importe où sur le réseau. Clients web Le Web est donc un ensemble de serveurs connectés à l’Internet et proposant des ressources. L’utilisateur qui accède à ces ressources utilise en général un type particu- lier de programme client, le navigateur. Les deux principales tâches d’un navigateur consistent à : 1. dialoguer avec un serveur ; 2. afficher à l’écran les documents transmis par un serveur. Les navigateurs offrent des fonctionnalités bien plus étendues que les deux tâches citées ci-dessus. Firefox dispose par exemple d’un mécanisme d’extension par plugin qui permet d’intégrer très facilement de nouveaux modules. 1.1.3 Programmation web La programation web permet de dépasser les limites étroites des pages HTML sta- tiques, dont le contenu est fixé à l’avance. Le principe consiste à produire les documents HTML par un programme associé au serveur web. Ce programme reçoit en outre des paramètres saisis par l’utilisateur qui conditionnent la page renvoyée par le serveur au client. Le contenu des pages est donc construit à la demande, « dynamiquement ». La figure 1.2 illustre les composants de base d’une application web. Le navigateur (client) envoie une requête (souvent à partir d’un formulaire HTML). Cette requête consiste à déclencher une action (que nous désignons par « programme web » dans ce qui suit) sur un serveur référencé par son URL. L’exécution du programme web par le serveur web se déroule en trois phases : 1. Constitution de la requête par le client : le navigateur construit une URL conte- nant le nom du programme à exécuter, accompagné, le plus souvent, de paramètres ; 2. Réception de la requête par le serveur : le programme serveur récupère les infor- mations transmises par le navigateur et déclenche l’exécution du programme en lui fournissant les paramètres reçus ; 3. Transmission de la réponse : le programme renvoie le résultat de son exécution au serveur sous la forme d’un document HTML, le serveur se contentant alors de faire suivre au client. Nous décrivons brièvement ces trois étapes dans ce qui suit. . Web peut demander et consulter très simplement des documents. Le Web propose aussi des services ou des modes de communication entre machines permettant d’effectuer des calculs répartis ou des échanges. comment on associe l’expression « pratique de MySQL et PHP » à son URL. <ahref="http ://www. lamsade. dauphine . fr / rigaux /mysqlphp"> Pratique de MySQL et PHP </a> À chaque. Introduction à MySQL et PHP 1 Ce chapitre est une introduction à l’association de MySQL et de PHP pour la production de documents « dynamiques », autrement dit créés à la demande par un programme.