3>Débuter avec PHP pour la réalisation d’un site web

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.
  • %3