Вы находитесь на странице: 1из 9

XHTML, CSS, JavaScript,... et PHP : tout cela peut facilement embrouiller le débutant.

Néanmoins la création d'un site web professionnel nécessite la maitrise de nombreux


domaines, il est donc utile de revenir sur les principaux mécanismes employés lors de
l'utilisation de PHP. Ceux-ci nécessitent d'être correctement compris et assimilés si
l'on souhaite profiter du potentiel offert par les langages côté serveur.

Dans cet article, nous nous proposons de ne pas aborder la programmation


proprement dite, mais de reprendre les bases nécessaires à la bonne compréhension
et donc à l'utilisation de PHP. Nous décrirons de quelle façon PHP intervient lors de la
consultation du site.

Un peu de théorie

Il est nécessaire de bien comprendre le fonctionnement de PHP : il diffère à la fois du


couple HTML / CSS et bien qu'il s'agisse d'un langage de programmation à part
entière, son fonctionnement est fort éloigné d'un programme "classique", écrit en
Java ou en C++ par exemple.

Les bases du HTTP

Que se passe-t-il lorsque vous entrez l'adresse d'une page dans votre navigateur
(agent utilisateur) ?

L'agent utilisateur va établir une requête en utilisant le protocole HTTP indiquant


entre autre la page demandée. Cette requête, une fois arrivée au serveur transmet
l'adresse (URI) demandée (ex :
http://www.nomdusite.com/repertoire/document.html). Cette demande est traitée
par un serveur web (tel qu'Apache ou IIS) qui va l'interpréter, trouver le fichier
demandé et le renvoyer en réponse HTTP. Dans le cas d'une requête demandant une
page HTML "classique", celle-ci est trouvée (ou non) par le serveur web sur le disque
dur du serveur puis se voit simplement renvoyée vers le navigateur du visiteur.

Ainsi, la visite d'un site ne se fait que par "morceau", page après page. Le serveur web
et le client ne sont en relation qu'au moment où une requête est interprétée par le
serveur web. Une fois que la page a été envoyée au client, le serveur web perd tout
contact avec celui-ci. Ce mécanisme devient plus complexe lors de l'emploi d'un
langage de programmation interprété côté serveur.

 
Langage côté serveur

Cette expression désigne un langage dont l'exécution à lieu sur le serveur et non sur
la machine du "client" comme le sont les scripts JavaScript, les animations Flash ou
tout simplement les rendus CSS de la page HTML : logique. Toutefois cela a de
nombreuses implications :

 l'éxécution du script est indépendante du client/navigateur : la machine de


celui-ci ou son agent utilisateur n'interviennent pas ;
 le visiteur ne peut pas refuser l'éxécution du script, comme il peut le faire pour
JavaScript en le désactivant, ou avec dans le cas d'une animation Flash s'il ne
possède pas le plug in ;
 les paramètres d'exécution dépendent de la configuration du serveur web : il
doit implémenter le "moteur" du langage côté serveur employé (PHP 4 ou 5,
ASP, …) ;
 le script n'est pas en relation directe avec le client : celui-ci doit lui passer ses
données (variables diverses) par un mécanisme particulier s'il veut qu'elles
soient disponibles au moment de l'éxécution ;
 le client n'a aucune idée du traitement effectué : une fois le script exécuté, le
document renvoyé ne contient plus le code PHP, il s'agit d'un simple
document HTML, CSS ou autre. L'exécution du script est donc totalement
transparente pour l'agent utilisateur.

Exécution d'une page PHP

PHP étant un langage exécuté côté serveur, voyons comment l'exécution d'une page
contenant un script PHP se déroule. Imaginons une requête demandant au serveur
web de livrer à l'agent utilisateur une page quelconque contenant du PHP. Il peut
s'agir d'un document (X)HTML dont l'URI est entrée directement par le visiteur ou
d'une feuille de style CSS appelée par l'agent utilisateur lors de la lecture d'une page
HTML.

La configuration du serveur fait en sorte qu'il reconnaisse certaines extensions de


fichiers (pour un fichier PHP il s'agit le plus souvent de .php). Quand le serveur web à
affaire à ce type de fichier, son comportement diffère de celui que nous avons détaillé
plus haut dans le cas d'une page "classique". Une fois le fichier trouvé, il va d'abord le
passer à l'interpréteur correspondant (PHP dans notre cas). Celui-ci va traiter le script
et renvoyer les données en sortie au serveur web, qui va lui-même les renvoyer au
client.

Quelles sont ces données renvoyées au client ? Il s'agit tout simplement de ce que la
fonction de la page implique : s'il s'agit d'un document (X)HTML, ce sera du (X)HTML,
mais si la page est un fil RSS, les données renvoyées seront des données XML. Ainsi,
une fois la page envoyée au client, il n'est plus question de PHP. C'est donc à vous de
faire en sorte que votre script PHP renvoie les données correspondant au type de
page générée et le cas échéant que ces données soient valides.

Quel a été le rôle de PHP ? Celui-ci a servi à générer les données qui ont été
renvoyées au client. Par exemple, nous pouvons établir un script PHP qui va générer
une page html en assemblant plusieurs fichiers, ou en insérant le contenu issu d'une
base de données dans une page html existante.

Ainsi, le traitement effectué par PHP ne sert que d'intermédiaire : le client demande
une page particulière (page html, feuille de style css, etc), le serveur web interprète la
demande et lance l'exécution d'un script qui va permettre la génération de la page
avant de la renvoyer au client. Ainsi, pour le client il n'est pas question de PHP : une
fois la page renvoyée elle ne contient plus de code PHP, mais uniquement des
données d'un type particulier (une page html le plus souvent).

Ce mécanisme implique également que le script s'arrête une fois la page générée et
renvoyée. Prennons l'exemple de la consultation d'un forum : il ne s'agit pas d'un
processus continu, où un script PHP s'exécute constamment. A chaque fois, le script
reprend depuis le début, génère une page et s'arrête. Entre chacune de ses
éxécutions (ou entre l'exécution de différents script des pages d'un même site), un
script PHP ne garde aucun "souvenir" du client. Chaque exécution est totalement
indépendantes des précédentes (nous verrons plus loin qu'il y a quand même moyen
de garder une "trace" des exécutions précédentes).

PHP dans la pratique

Mise en place d'un script

Un script PHP peut prendre place n'importe où à l'intérieur d'un document. Lorsque
l'interpréteur PHP lit le fichier, il envoie en sortie tout le contenu qu'il trouve avant un
script, ensuite le script est exécute (et renvoie peut être lui même des données). Une
fois le script terminé, l'interpréteur continue de parcourir le fichier de la même façon
et exécute les éventuels autres script présents dans la suite du document.

Un script doit être encadré par un balisage particulier afin d'être reconnu comme tel.
Le balisage suivant est le plus courant (et recommandé) afin de définir le début et la
fin d'un script :

<?php

// Ceci est un commentaire :


// Ici, le script PHP...

?>

Différentes utilisations de PHP

Tout cela est bien beau, mais à quoi peut bien servir PHP ?

Nous pouvons faire une liste des utilisations les plus courantes :

 Traitement de formulaire: il est possible de traiter facilement les données


envoyées via un formulaire HTML, par exemple, les données peuvent être
traitées et insérées dans une base de données ou envoyées par email à
l'auteur du site ;
 Utilisation d'un modèle de page : PHP est très souvent utilisé pour construire
dynamiquement les pages sur base de modèles / template. Le contenu d'une
page particulière est inséré dynamiquement au sein d'une page servant de
modèle ;
 Gestion d'un panier d'achat : il est possible de suivre les visiteurs de page en
page et ainsi de suivre leurs achats. Comme nous l'avons décrit plus haut, la
consultation d'un site se fait "par bond", le serveur web ne gardant pas trace
des précédentes pages consultées. PHP permet par l'utilisation des variables
de session de contourner ce problème.

Après avoir vu un premier aperçu du langage PHP, nous allons maintenant étudier les différentes
structures de contrôles du langage. Les structures de contrôles nous permettrons de faire des tests entre
les variables et d'exécuter diverses boucles.

Voici un petit récapitulatif des principales structures de contrôles :

Instructio
Signification
n

if Si

else Sinon

elseif Sinon si

switch Selon

for Pour chaque (boucle)

while Tant que (boucle)

== Strictement égal

!= Différent

< Strictement inférieur

> Strictement supérieur

<= Inférieur ou égal

>= Supérieur ou égal

and ou && ET logique

or ou || OU logique

Nous allons maintenant illustrer toutes ces structures de contrôles.

if, else, elesif

Nous allons initialiser une variable numérique $nombre à la valeur 11 par exemple, et faire différent
tests dessus.

exemple1.php

1. <?php
2. $nombre = 11;
3. if ($nombre >= 0 && $nombre < 10) {
4. // on teste si la valeur de notre variable est comprise entre 0 et 9
5. echo $nombre.' est compris entre 0 et 9';
6. }
7. elseif ($nombre >= 10 && $nombre < 20) {
8. // on teste si la valeur de notre variable est comprise entre 10 et 19
9. echo $nombre.' est compris entre 10 et 19';
10. }
11. else {
12. // si les deux tests précédents n'ont pas aboutis, alors on tombe dans ce
cas
13. echo $nombre.' est plus grand que 19';
14. }
15. ?>

A l'affichage on aura :

11 est compris entre 10 et 19

(Remarquons déjà que les instructions qui doivent être exécutées lorsqu'un test est validé sont
systématiquement comprises entre des crochets { }).

En effet, résumons ce qui vient de se passer.

Dans un premier temps, on teste si $nombre est supérieur ou égal à 0 et strictement inférieur à 10, et
dans ce cas, et seulement dans ce cas, on écrira alors sur l'écran, $nombre est compris entre 0 et 9.
Or vu que $nombre est égal à 11, on se rend compte que ce test ne sera pas satisfait.
On a alors deux solutions. Soit on écrit directement le cas Sinon (else), soit on peut faire un autres test,
ce qui correspond à un SinonSi (elseif).
Nous avons choisis de faire un second test (elseif).
La, on teste si $nombre est supérieur ou égal à 10 et strictement inférieur à 20 (ce qui est notre cas car
$nombre est égal à 11).
Le test est donc validé, et l'on exécute alors les instructions présentes entre les crochets { } du elseif.
On affichera donc à l'écran : 11 est compris entre 10 et 19
Viens ensuite le cas else qui est exécuté seulement si aucunes des conditions définies par les if et
les elseif n'est vérifiées.

switch

Le switch représente exactement la même chose qu'une succession d'un if et de plusieurs elseif. En


revanche, utiliser un switch à un certain avantage comparé à un if et à plusieurs elesif, c'est que sa
structure est beaucoup moins lourde et nettement plus agréable à lire.

Prenons un exemple simple. Nous allons déclarer une variable contenant une chaîne de caractères, puis
nous allons tester cette chaîne grâce au switch.
On aura alors le code suivant :

exemple2.php

1. <?php
2. $nom = "LA GLOBULE";
3.
4. switch ($nom) {
5. case 'Jean' :
6. echo 'Votre nom est Jean.';
7. break;
8. case 'Benoît' :
9. echo 'Votre nom est Benoît.';
10. break;
11. case 'LA GLOBULE' :
12. echo 'Votre nom est LA GLOBULE.';
13. break;
14. default :
15. echo 'Je ne sais pas qui vous êtes !!!';
16. }
17. ?>

Dans notre cas, vu que $nom contient la chaîne de caractère LA GLOBULE, on verra alors s'afficher à
l'écran la phrase suivante :

Votre nom est LA GLOBULE.

En revanche, si la variable $nom avait contenu la chaîne de caractère "toto", ce même code aurait
affiché à l'écran :

Je ne sais pas qui vous êtes !!!

En utilisant un if puis une succession de elseif, le code suivant aurait exactement eu le même affichage
sur l'écran :

exemple3.php

1. <?php
2. $nom = "LA GLOBULE";
3.
4. if ($nom == "Jean") {
5. echo 'Votre nom est Jean.';
6. }
7. elseif ($nom == "Benoît") {
8. echo 'Votre nom est Benoît.';
9. }
10. elseif ($nom == "LA GLOBULE") {
11. echo 'Votre nom est LA GLOBULE.';
12. }
13. else {
14. echo 'Je ne sais pas qui vous êtes !!!';
15. }
16. ?>

Attention !
Notez bien l'utilisation de break dans chaque cas de votre switch. Si celui-ci est omis, tous les messages
s'afficheront.

for (pour chaque)

La structure de contrôle for nous permet d'écrire des boucles. En clair, cela veut dire que nous allons
exécuter une série d'instructions un nombre de fois bien déterminé.

Prenons l'exemple suivant :

exemple4.php

1. <?php
2. $chiffre = 5;
3.
4. // Début de la boucle
5. for ($i=0; $i < $chiffre; $i++) {
6. echo 'Notre chiffre est différent de '.$i.'<br />';
7. }
8. // Fin de la boucle
9.
10. echo 'Notre chiffre est égal à '.$i;
11. ?>

Ce qui affichera à l'écran :

Notre chiffre est différent de 0


Notre chiffre est différent de 1
Notre chiffre est différent de 2
Notre chiffre est différent de 3
Notre chiffre est différent de 4
Notre chiffre est égal à 5

En effet, on initialise notre variable $chiffre à 5. On démarre la boucle for qui dit que l'on va exécuter les
instructions situées entre les crochets de la boucle ({ }) pour i variant de 0 à $chiffre-1 (donc jusqu'à 4),
i étant incrémenter à chaque passage de boucle ($i++).
($i varie de 0 à $hiffre-1 car on impose que $i soit strictement inférieur à $chiffre).
On exécute alors 4 fois les instructions présentes dans la boucle, et à chaque passage, $i verra sa valeur
augmentée de 1.

Aparté :

L'utilisation des boucles est extrêmement importante (et indispensable) en programmation. La


compréhension de ce passage est capital.

while (tant que)

Voyons maintenant l'autre boucle, la boucle while (dite boucle tant que). Il faut déjà savoir que la
boucle while n'est pas vraiment d'une nécessité absolue (elle est absente dans certains langages de
programmation) vu qu'elle est toujours remplaçable par une boucle for.

Reprenons l'exemple précédent, et écrivons le à l'aide de la boucle while, on a :

exemple5.php

1. <?php
2. $chiffre = 5;
3. $i = 0;
4.
5. // Début de la boucle
6. while ($i < $chiffre) {
7. echo 'Notre chiffre est différent de '.$i.'<br />';
8. $i = $i + 1;
9. }
10. // Fin de la boucle
11.
12. echo 'Notre chiffre est égal à '.$i;
13. ?>

Ce qui affichera à l'écran exactement la même chose que ce qu'affiche le code que l'on a utilise pour la
boucle for.

Ici, on initialise notre variable $chiffre à 5, puis la variable $i à 0.


Ensuite, nous faisons le test suivant : tant que $i < $chiffre, alors afficher "Notre chiffre est différent de
$i" et augmenter la valeur de $i de 1.
Puis dès que la condition $i < $chiffre n'est plus vérifiée, nous sortons de la boucle pour finir l'exécution
des instructions qui suivent.

Вам также может понравиться