Aller au contenu
M07 · A. Introduire la notion client/serveur

Introduire PHP : un langage qui fabrique des pages

Ce qu'est PHP, où il s'exécute, comment il se mélange au HTML avec les balises <?php ?> et <?=, et tout ce qu'il sait faire côté serveur.

1Situer

Le client et le serveur se parlent en HTTP. Reste à écrire le programme qui, côté serveur, fabrique la page : c'est le rôle de PHP. Avant d'apprendre sa syntaxe en détail, on regarde comment un fichier PHP est construit et ce qui se passe quand Apache le reçoit.

2Comprendre

Ce qui se passe quand on demande une page PHP
Navigateur /index.php Souk AtlasBonjour Amina3 produits Serveur Apache Interpréteur PHP index.php (code PHP) <h1>Souk Atlas</h1> <?php echo "Bonjour $prenom"; ?> <?= count($produits) ?> produits <h1>Souk Atlas</h1> Bonjour Amina 3 produits HTML produit GET 200

Le navigateur demande /index.php au serveur web Apache.

1 / 5

PHP en quelques mots

PHP fait tourner une grande partie du web : WordPress (plus de 40 % des sites), Wikipédia, de nombreux sites de e-commerce et la plupart des hébergements mutualisés le proposent. Il est gratuit, open source, et sa version actuelle est PHP 8 (8.3 dans ce simulateur).

Ce que PHP sait faire côté serveur :

  • produire du HTML (mais aussi du JSON pour une API, un PDF, une image…) ;
  • lire les formulaires envoyés par le navigateur ;
  • dialoguer avec une base de données (MySQL avec PDO) ;
  • se souvenir d’un visiteur (sessions, cookies) ;
  • lire et écrire des fichiers sur le serveur, envoyer des emails.

Le trajet d’une page PHP

  1. Le navigateur demande http://localhost/index.php.
  2. Apache voit l’extension .php : au lieu d’envoyer le fichier, il le confie à PHP.
  3. PHP parcourt le fichier. Le texte hors des balises PHP est recopié tel quel ; le code entre <?php et ?> est exécuté, et ce qu’il affiche (echo) prend sa place.
  4. Le résultat (du pur HTML) repart vers le navigateur.

Les balises PHP

<?php
$prenom = "Hiba";               // instruction PHP : terminée par ;
$panier = 3;
?>
<h1>Bonjour <?= $prenom ?></h1>      <!-- raccourci d'affichage -->
<p>Vous avez <?php echo $panier; ?> article(s) dans le panier.</p>

Trois règles à retenir :

  • chaque instruction PHP se termine par un point-virgule ; ;
  • un fichier entièrement PHP (sans HTML) commence par <?php et ne met pas de ?> à la fin : on évite ainsi les espaces parasites envoyés après ;
  • les commentaires s’écrivent // sur une ligne ou /* sur plusieurs lignes */.

PHP, JavaScript : qui fait quoi ?

PHPJavaScript (navigateur)
Où ?serveurnavigateur
Quand ?avant l’envoi de la pageaprès l’affichage
Accès à la base de donnéesouinon (il passe par le serveur)
Réagir à un clic sans rechargernonoui
Code visible par le visiteurnonoui

Les deux se complètent : PHP fabrique la page et enregistre les données, JavaScript rend la page vivante. Au module 05, vos scripts tournaient dans le navigateur ; ici, tout se passe sur le serveur.

Exemple simple

Le moule à gâteaux

Un fichier HTML est une photo du gâteau : tout le monde reçoit la même. Un fichier PHP est la recette avec des cases à remplir : à chaque commande, le pâtissier (le serveur) suit la recette et écrit le prénom du client sur le gâteau.

Exemple simple

Le formulaire de la mairie

Le texte imprimé du formulaire ne change pas (le HTML), seules les cases sont remplies à la main pour chaque citoyen (les parties PHP entre <?php et ?>).

<p>Bonjour <?= $prenom ?>, votre commande n° <?= $numero ?> est prête.</p>

3Manipuler

Exécutez la page, puis regardez « Code source reçu » : les balises PHP ont disparu, remplacées par leur résultat. Réalisez ensuite les consignes en modifiant index.php.
Pas à pas dans le lab ↗ Cliquez sur Exécuter : PHP 8.3 démarre dans votre navigateur (environ 5 Mo à télécharger, une seule fois).

La page s'affichera ici.

Le navigateur demandera /index.php au serveur, qui exécutera le PHP et renverra du HTML.

Entre le navigateur et le serveur aucun échange pour l'instant

Consignes 0 / 3

  1. Ajoutez une variable $ville qui vaut « Fès » et affichez « Livraison depuis Fès » dans un paragraphe
  2. Affichez avec echo un lien HTML <a href="contact.php">Contact</a>
  3. Changez le nom de la boutique en « Souk Atlas Maroc » : le titre de l'onglet et le h1 changent ensemble

4Pratiquer

Exercice 1 · Ce que reçoit le navigateur

Le fichier contient : <h1><?php echo 2 + 3; ?> produits</h1>. Qu'est-ce que le navigateur reçoit exactement ?

Voir le corrigé
<h1>5 produits</h1>
Le calcul est fait sur le serveur ; le navigateur ne voit ni echo, ni 2 + 3.

Exercice 2 · Écrire une page PHP

Écrivez une page qui affiche « Il reste N jours avant la fin du mois », N étant calculé avec date('t') (nombre de jours du mois) et date('j') (jour actuel).

Voir le corrigé
<?php
$reste = (int) date('t') - (int) date('j');
?>
<p>Il reste <?= $reste ?> jours avant la fin du mois.</p>

Exercice 3 · PHP ou JavaScript ?

Pour chaque besoin, dites s'il se fait en PHP (serveur) ou en JavaScript (navigateur) : vérifier un mot de passe dans la base ; afficher un menu quand on clique ; enregistrer une commande ; compter les caractères pendant la frappe.

Voir le corrigé
Vérifier un mot de passe dans la base : PHP (la base n'est accessible que du serveur)
Afficher un menu au clic : JavaScript (réaction immédiate dans la page)
Enregistrer une commande : PHP
Compter les caractères pendant la frappe : JavaScript

5Vérifier

1. Où s'exécute le code PHP ?
2. Que fait <?= $prix ?> ?
3. Un fichier PHP peut contenir :