Les langages du web

Mini-cours de PHP - MySQL

( en construction )

Table des matières

Avant de lire ce cours, je choisis mes couleurs

Cette mini-étude portera sur la version 7.0 de PHP et la version 5.7 de MySQL.
Seules les bases seront abordées. Elles seront cependant suffisantes pour réaliser des choses intéressantes.

Pré-requis

Pourquoi apprendre le PHP et MySQL ?

Apprendre le PHP, c'est facile.
Vous êtes un comique ! Avec vous, c'est toujours facile !

Oui, c'est même très facile ! La preuve ?
En gros, un fichier PHP est un fichier HTML avec une balise supplémentaire : <?php ... ?>

Et, cette balise peut se mettre entre deux balises HTML et même dans une balise HTML.
Dans le body, mais aussi le head et même avant la première balise HTML. Bref, partout ! (sauf dans elle-même)

test1.php (contenu du fichier placé sur le serveur) :

<!DOCTYPE html>
<html lang="fr-BE" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-BE">
  <!-- À Â Ç É È Ê Ë Î Ï Ô Ù Û Ü Ÿ Æ Œ æ œ -->
  <head>
    <meta charset="UTF-8" />
    <meta name="robots" content="index, follow" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="" />
    <title>Mon premier fichier PHP</title>
  </head>
  <body>
    <p id="titre">Mon premier fichier PHP</p>
    <p>Bonjour ! Actuellement, sur le serveur, il est : <?php echo(date(DateTime::ATOM)); ?>.</p>
  </body>
</html>

On constate que le contenu du fichier "test1.php" est essentiellement du code HTML. Mais, il est important que l'extension du fichier soit .php (et non .htm) pour indiquer au serveur que le fichier doit être traité avant d'être envoyé.
NB : Un fichier PHP peut contenir aucune ou plusieurs balises <?php ... ?>.

Avec le JavaScript, une page web peut afficher une information qui n'était pas connue lors de la conception de la page web. Toutefois, ici, cette information viendra du serveur (et non plus du navigateur)

Le serveur est la machine qui envoye les données.
Les données envoyées sont, généralement, des fichiers (souvent des fichiers au contenu écrit en HTML).
Le serveur travaille 24h sur 24, 365 jours par an, sans clavier, ni écran, ...

Le client est le logiciel qui reçoit les données (et qui envoie à un serveur une requête).
Une requête est une demande de données.
Dans une relation client-serveur, le client est, quasi toujours, le navigateur web.
(Toutefois, un client peut être un logiciel installé sur un autre serveur ...)
L'utilisateur est celui qui lit ce que le navigateur web affiche à l'écran.

Analysons le code : <?php echo(date(DateTime::ATOM)); ?>

Bon. Les balises <?php et ?> servent à dire - au programme qui lit le code : Entre ces deux balises, se trouve le code PHP.

Le code PHP est donc : echo(date(DateTime::ATOM));

Comme vous avez étudié le JavaScript, vous avez repéré le point-virgule ; à la fin de la ligne. Vous comprenez vite qu'il s'agit d'une instruction (un ordre donné au programme qui lit le code)

Cet ordre est echo(date(DateTime::ATOM))
Comme vous avez étudié le JavaScript, vous avez repéré la fonction echo(       )
Vous avez compris que le paramètre de echo() est date(DateTime::ATOM)
Et, que le paramètre de date() est DateTime::ATOM

Et, pour coder en PHP, je vais devoir retenir des trucs comme echo(), date() et DateTime::ATOM ???
Absolument pas. Vous ne devez retenir que les bases du PHP. Et, vous les connaissez déjà !

Tu te moques de moi ? Je n'ai pas encore étudié le PHP et je connais déjà les bases !?
Et, oui ! Puisque tu connais déjà les bases du JavaScript.
Certes, il existe de petites différences. Mais, leur étude ne dure qu'une heure (un seul chapitre).

Mais si les echo(), date() et DateTime::ATOM ne font pas partie des bases et que je n'étudierai que les bases, comment saurai-je ce que font ces fonctions ?

Pour savoir ce que fait une fonction PHP, il suffit de taper dans un moteur de recherche : PHP nom_de_la_fonction()

Bref, une fois qu'on connaît les bases, il suffit de lire la documentation.

La documentation se trouve sur internet.
Mais, on peut aussi la télécharger. Puis, la lire sur son ordinateur.

La force du PHP est qu'il est livré avec plus de 1.000 fonctions toutes faites.

Une fois que le programme a terminé d'exécuter les ordres de ce fichier, voici ce qu'il envoyé au navigateur :

test1.php :

<!DOCTYPE html>
<html lang="fr-BE" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-BE">
  <!-- À Â Ç É È Ê Ë Î Ï Ô Ù Û Ü Ÿ Æ Œ æ œ -->
  <head>
    <meta charset="UTF-8" />
    <meta name="robots" content="index, follow" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="" />
    <title>Mon premier fichier PHP</title>
  </head>
  <body>
    <p id="titre">Mon premier fichier PHP</p>
    <p>Bonjour ! Actuellement, sur le serveur, il est : 2018-05-12T09:45:12+00:00</p>
  </body>
</html>

Le nom du fichier est le même. Mais, sur le serveur, le fichier contient du code PHP. Le navigateur, lui, ne reçoit que du code HTML. Si l'utilisateur regarde le code source, il ne voit que du code HTML. Le contenu du fichier PHP est modifié par le serveur avant son envoi.

Le processus est donc simple.

  1. Le navigateur appelle un fichier *.php
  2. Le serveur "traite" le fichier appelé.

Souvent, après avoir traité le fichier, le serveur envoie le fichier modifié au navigateur.

Toutefois, le "traitement" peut aussi consister à modifier une base de données, sans le signaler à l'utilisateur. Dans ce cas, le fichier PHP ne contient aucun code HTML, ni aucune fonction echo(). Par exemple, pour incrémenter un compteur de visites.

La différence est là.
Le serveur envoie les fichiers *.htm (sans les traiter).
Le serveur traite les fichiers *.php.

En suivant les instructions PHP, le serveur peut modifier le contenu des fichiers *.php avant de les envoyer.
Du code PHP permet d'aller chercher des données dans une base de données.
La force du PHP est d'être capable d'inclure ces données dans une page web.
Le PHP permet de créer des sites dynamiques, c'est-à-dire capables de s'adapter en fonction de l'utilisateur identifié.

Le JavaScript, via AJAX, peut aussi inclure des données dans une page web, mais ces données viennent d'un fichier PHP  (et jamais directement d'une base de données sécurisée)

Et, MySQL ?

MYSQL est la base de données la plus utilisée, car elle est gratuite et performante. Inclure des données dans une page web est si important que le PHP et MySQL forme un couple très courant.

Et, l'étude de MySQL va, elle aussi, être très rapide, puisque vous connaissez déjà le langage SQL.

Voilà, vous savez déjà l'essentiel.

Le PHP fabrique la page. Le JavaScript manipule la représentation de la page dans la mémoire du navigateur.
Le code PHP est interprété par le serveur. Le code JavaScript est interprété par le navigateur.
Le PHP est côté serveur. Le JavaScript, côté client (navigateur)
Le code PHP n'est pas accessible pour l'utilisateur. Le code JavaScript peut être lu par l'utilisateur.
Donc, les codes d'accès à une base de données doivent être placés dans le code PHP.

Puisque ces codes d'accès à la base de données ne peuvent pas être placés dans du code JavaScript, l'étude du PHP est inévitable. Mais, comme vous avez déjà étudié le JavaScript, ce cours sera vraiment court ...