Introduction
Tuto écrit par LionZion, revu en août 2004 par Molokai et Raf
Qu'est-ce que PHP ?
PHP est un langage de programmation qui s'intègre dans vos pages HTML. Il permet entre
autres de rendre automatiques des tâches répétitives, notamment grâce à la
communication avec une base de données (utilisation la plus courante de PHP). Le but des
exercices de phpDébutant est de vous apprendre à maîtriser les bases de ces deux outils (PHP
et base de données), afin que vous puissiez élaborer vos propres applications.
Mais, avant de continuer, il est bon d'expliquer comment se déroule une requête HTTP : en clair
que se passe-t-il lorsque vous tapez une adresse dans votre navigateur, où interviennent PHP
et MySQL (la base de données), et les conséquences que cela implique.
Voici, en simplifiant, ce qu'il se passe lorsque vous consultez une page html dite statique :
- Votre navigateur envoie l'adresse URL (Uniform Ressource Locator) que vous
avez tapée
- Le serveur web est un "ordinateur" présent sur l'Internet et qui héberge la page que
vous demandez. Sur ce serveur on trouve Apache, logiciel
apte à traiter les requêtes HTTP que vous envoyez lorsque vous demandez une page web. Apache
va donc chercher le fichier demandé dans son arborescence et renvoie à
votre navigateur la page HTML
- Votre navigateur interprète les différents langages se trouvant dans ce fichier
(HTML, JavaScript, CSS, etc ...) et affiche la page.
Maintenant, voyons ce qui se passe lorsque votre page HTML contient du code PHP :
- Votre navigateur envoie l'adresse que vous avez tapée
- Le serveur web cherche dans son arborescence si le fichier existe, et si celui-ci porte
une extension reconnue comme une application PHP (.PHP, .PHP3, .PHP4 par exemple).
Si c'est le cas, le serveur web transmet ce fichier à PHP.
- PHP parse le fichier, c'est-à-dire qu'il va analyser et exécuter le code PHP qui
se trouve entre les balises <?php et ?>. Si ce code contient des requêtes
vers une base de données MySQL, PHP envoie la requête SQL. La base de données renvoie les
informations voulues au script qui peut les exploiter (pour les afficher par exemple).
- PHP continue de parser la page, puis retourne le fichier dépourvu du code PHP au serveur web.
- Le serveur web renvoie donc un fichier ne contenant plus de PHP, donc seulement du HTML
au navigateur qui l'interprète et l'affiche.
Vous remarquez donc que PHP s'exécute côté serveur. Il n'y a plus aucune trace du
code PHP lorsque vous regardez le code source de la page dans votre navigateur PHP.
La base de données la plus couramment utilisée avec PHP est sans aucun doute MySQL. A quoi sert
une base de données ? Lorsque vous allez produire des informations dans votre script PHP, vous
devez les stocker quelque part. Si ce n'est pas le cas, elles seront alors perdues lorsque le serveur renverra la page
html au client (votre navigateur). Pour les stocker, il existe deux solutions: la première
consiste à les enregistrer dans un fichier texte sur le serveur (quelque part dans l'arborescence
de votre hébergement), la seconde à les enregistrer dans une base de données. La sauvegarde dans un fichier texte
n'est pas l'idéal, notamment lorsque vous souhaitez chercher, modifier ou supprimer une partie de
l'information que vous stockez. Les bases de données ont été conçues dans cette optique-là. Vous
verrez dans quelques exercices comment SQL permet de traiter l'information.
Utiliser PHP sur son ordinateur :
Pourquoi installer PHP sur son ordinateur ? Pour tester vos script PHP, vous allez être amené
à les envoyer sur votre hebergeur, sur Internet. Cependant il devient vite très lourd de sans cesse
renvoyer ces fichiers par FTP. C'est pourquoi installer un serveur web sur son ordinateur est utile,
et permet de tester ses scripts plus souplement. Concrètement, votre ordinateur sera à la fois client
et serveur. Ainsi vous pourrez programmer en PHP sans avoir besoin d'être connecté à Internet,
ce qui peut être utile pour les personnes ne disposant pas de connexions illimitées.
Alors que pour tester des pages web html en local, il suffit d'ouvrir le fichier
dans un navigateur, il faut un serveur web sur votre PC local pour tester une page
PHP. Pour cela, il existe plusieurs utilitaires très pratiques qui installeront
Apache, le serveur web le plus utilisé,
PHP,
MySQL
. Leur installation et son utilisation sont très simples et détaillées. Les plus connus sont :
Si vous êtes sous linux, la plupart des distributions (RedHat, Mandrake,
etc ...) installent par défaut Apache, PHP et MySQL. Un article sur Lea-linux
indique comment installer Apache, PHP et Mysql si cela n'a pas été fait. Il se trouve
ici. De plus, une application
similaire à EasyPHP existe pour Linux, il s'agit de
Linux Easy Installer.
De plus, la documentation officielle (cf lien ci-après) contient une partie consacrée à
l'installation.
Quel outil pour faire du PHP ?
Pour faire du PHP, il ne vous faut rien d'autre qu'un simple éditeur de texte.
Vous en trouverez une liste ici
ainsi qu'un comparatif plutôt complet ici.
Mais l'outil le plus indispensable est certainement la documentation officielle. Celle-ci est
disponible ici. Elle contient la description complète
des fonctions, la syntaxe de PHP, comment l'installer ... C'est une mine d'or, prenez le temps
d'y jeter un oeil, et en cas de doute c'est ici que vous devez chercher en premier.
Enfin sachez utiliser ces merveilleux outils que sont les moteurs de recherche, et plus particulièrement
Google. En cherchant bien vous trouverez facilement des ressources
(documentation, tutorial, article, ...) dont vous aurez besoin.
Le but pour vous est de pouvoir être autonome lorsque vous developperez et de savoir se débrouiller
seul face à un problème.
Notions essentielles !
Il est très important de comprendre ce qui suit :
- Il faut bien distinguer le client et le serveur (imaginez tout bêtement la scène dans un bar).
Votre navigateur est le client. C'est lui qui demande la page web que vous avez entrée. Le serveur
est l'ordinateur sur l'Internet qui héberge cette page web. PHP s'exécute donc côté serveur.
Cependant, quand PHP envoie une requête SQL au serveur MySQL, il est alors client, vous saisissez ? :)
En voici quelques conséquences :
- Tout ce qui a trait à la présentation de la page (couleur du texte, etc..) est à faire en
HTML et CSS, exécutés côté client. PHP n'a rien à voir avec le design de votre page
- Tout ce qui touche au comportement du navigateur est du domaine du JavaScript, lui aussi exécuté
par le client
- L'interêt de PHP est de générer du HTML ou du Javascript dynamiquement. Le travail effectué
avec PHP sur votre page est totalement invisible pour le visiteur.
- Le SQL est un langage a part entière de PHP, il ne faut surtout pas confondre les deux.
C'est MySQL qui parse (c'est à dire analyse et exécute) votre code SQL, PHP ne fait qu'envoyer une requête
au serveur MySQL
- PHPMyAdmin n'est pas une base de données ! Il s'agit simplement d'un script PHP qui permet d'administrer
vos bases de données MySQL
Exemples et contre-exemples
Voyons maintenant des contre-exemples :
- Je souhaite qu'une pop-up s'ouvre quand la page se charge.
Ici, PHP n'est pas la solution. Vous devez utiliser un script qui soit exécuté par le navigateur
car c'est lui qui gère l'ouverture des pop-up. Le langage JavaScript est fait pour cela.
- Je souhaite connaître la résolution de l'écran du visiteur afin de faire des statistiques.
Itou, PHP ne peut pas gérer celà car il s'exécute côté serveur.
- Je souhaite faire un chat en php.
En effet il n'est pas impossible de réaliser un script de chat, il en existe d'ailleurs plusieurs. Cependant, les
limitations du protocole HTTP font que ce n'est vraiment pas souple et agréable à utiliser. Le mieux
reste d'utiliser IRC.
- Je souhaite avoir mon café prêt tous les matins à 7 heures.
Désolé, je crois que cela ne va pas être possible :)
En revanche, voici une liste non-exhaustive des cas où php pourra résoudre vos problèmes :
- Automatiser la gestion de news, d'articles ou autres éléments de votre site qui ont un caractère répétitif.
- Réaliser des webmails afin de gérer ses mails partout.
- Mettre à disposition des autres sites automatiquement des informations de son site (via la format RSS par exemple)
- Gérer des galeries photos, des annuaires de liens, des sondages, des forums, des moteurs de recherche
internes a votre site, etc .. PHP est l'idéal dans ces domaines là.
Un petit tour sur des sites comme phpscripts-fr.net,
phpapps.org (en sommeil actuellement) ou encore hotscripts.com
vous donnera un aperçu de ce qui peut être fait en PHP.
Le conseil gratuit
Quand vous essaierez de comprendre les exemples du site et que vous voudrez faire un script similaire mais adapté
à vos besoins, ne commencez pas à 0. Commencez par essayer l'exemple chez vous en le recopiant tel quel, vérifiez
qu'il fonctionne, et ensuite modifiez-le petit bout par petit bout en testant à chaque fois, afin d'arriver à ce
que vous souhaitez. C'est valable pour php mais pour n'importe quel autre langage ou problème auquel vous vous
attaquez.
Le carnet d'adresse du débutant
Vous voila fin prêt pour commencer à apprendre PHP, bon courage :)
|