Web, HTTP, PHP côté serveur
Notes de cours
Travail personnel
Objectifs
Prendre en main le serveur web fourni par l'université, et expérimenter avec l'exécution de PHP côté serveur.
Passage au web :
- Utilisation du bureau distant, du jeton de connexion, VMWare
https://docenstock.unicaen.fr/bureau-distant/co/GuideUtilisateurWeb.html
https://moncomptenumerique.unicaen.fr/double-authentification/ - Il est très important que le html généré par le php soit valide.
Exercice 1 — Premiers pas avec PHP côté serveur #
Cet exercice vise à vous familiariser avec les pages dynamiques et le fonctionnement de PHP. Pour rappel, une page PHP est un script qui doit être exécuté pour afficher son résultat. C'est le serveur qui exécute le script lorsque un client y accède via HTTP. Si vous essayez d'ouvrir une page PHP en local avec votre navigateur, cela ne fonctionnera pas (le navigateur vous proposera probablement de la télécharger).
Connexion SFTP à votre serveur : FAQ étudiant sur l'accès à votre espace web personnel
Exécution d'un script par le serveur
- Créez un script PHP nommé
page_perso.php
contenant le code suivant :<?php echo <<<HTML <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Page HTML générée par PHP</title> </head> <body> <h1>Page personelle</h1> <p>Bienvenue sur la page personnelle de <strong>X</strong>.</p> </body> </html> HTML; ?>
- Copiez le script à la racine de votre répertoire
www-dev
, puis accédez à l'URLhttps://dev-LOGIN.users.info.unicaen.fr/page_perso.php
. Qu'est-ce qui s'affiche ? - Consultez le code source de la page (dans Firefox, faites un clic droit puis sélectionnez « Afficher la source »). Que voyez-vous ?
- Créez une variable $nom contenant votre nom ré pour remplacer "X" dans la ligne correspondante du code.
- On veut maintenant accéder à la page page_perso.php?nom=VotreNom, le nom passé en paramètre sera affiché dans le contenu de la page. Si aucun nom n'est passé en paramètre, la page affichera "DUPONT" par défaut.
- On veut maintenant accéder à la page
https://dev-LOGIN.users.info.unicaen.fr/page_perso.php?nom=VotreNom
. Le nom passé en paramètre dans l'url sera affiché dans le contenu de la page. Si aucun nom n'est passé en paramètre, la page affichera "DUPONT" par défaut.
Remarque : Vous pouvez utiliser la fonctionhtmlspecialchars
pour convertir certains caractères spéciaux en entités HTML. Cette conversion est utile pour éviter toute interprétation incorrecte du code HTML par le navigateur.
Exercice 2 — Table de multiplication #
Construction de la table
-
Compléter le script
multiplication.php
suivant qui affiche une table de multiplication comme illustré dans la figure ci-dessous :<?php function afficherTable(int $borne): void { // A compléter ... } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Multiplication</title> <style> table { border: 1px solid black; margin: 3em auto; } td { border: 1px solid black; width: 3em; } td { background: blanchedalmond; } tr:nth-child(odd) > td:nth-child(odd), tr:nth-child(even) > td:nth-child(even) { background: gold; } .erreur { font-weight: bold; color: red; } </style> </head> <body> <h1>Table de multiplication</h1> <!-- A compléter ... --> <?php // A compléter ... // ... ?> </body> </html>
Le rendu de la figure est obtenu avec un tableau HTML (élément
table
), mais il n'est pas nécessaire de construire un tableau PHP (array
) pour le faire ! - Modifier le code pour que l'affichage de la table soit géré par une fonction
function afficherTable(int $borne): void
prenant en argument la borne supérieure de la table (15 dans le modèle). Par exemple, si on lui passe 20, elle affichera la table de 1 à 20. - Modifier à nouveau le code pour que la borne supérieure de la table soit contrôlée par un paramètre
borne
dans l'URL. Ainsi, la pagemultiplication.php?borne=20
affichera la table de 1 à 20.
- Remarques :
- Notez que la borne transmise via l'url est toujours une chaîne de caractères.
- Faire en sorte que la page choisisse une borne par défaut si l'URL ne
comporte pas de paramètre
borne
. - Vérifier que la borne fournie dans l'URL est comprise entre 1 et 100