Dans cette séance de TP vous allez programmer des scripts en PHP qui doivent marcher pour de vrai.
Vous allez apprendre à utiliser un serveur web local. En même temps, vous allez continuer à travailler avec les variables, les structures de contrôle et les formulaires.
Liens utiles : CM #1
Avant de commencer, créez dans votre espace personnel un répertoire nommé r213 pour y sauvegarder tout votre travail dans ce module. Dedans, créez un autre répertoire nommé r213-tp1 pour sauvegarder les exercices de cette séance (TP #1). Dans ce répertoire r213-tp1, créez un répertoire appelé exo1 pour le premier exercice, exo2 pour le deuxième, etc. Vos exercices ne seront pas corrigés si vous ne respectez pas ces instructions.
À la fin de la séance, vous devez compresser (en format ZIP ou RAR) le répertoire r213-tp1 avec tous vos exercices et le soumettre sur AMeTICE.
Seuls les exercices marqués avec une étoile (*) seront évalués. La date limite pour rendre vos exercices est visible sur AMeTICE, et aucun travail ne sera accepté après. Le corrigé sera affiché après l'évaluation des exercices.
Pour exécuter vos scripts en PHP sur votre ordinateur, vous avez besoin d'un serveur web virtuel : c'est un logiciel qui permet d'avoir un serveur web dans votre propre ordinateur, sans besoin de mettre votre site web en ligne.
Dans ce module on va utiliser XAMPP, qui est déjà installé sur les postes fixes de l'université. Autres logiciels connus sont WampServer (pour Windows uniquement) et MAMP (pour macOS uniquement).
Pour installer XAMPP sur votre ordinateur personnel, vous devez :
Pour utiliser XAMPP il y a trois étapes :
Par exemple, pour ouvrir le fichier qui se trouve dans
PC › Win10 (C:) › xampp › htdocs › r213 › r213-tp1 › exo3 › index.php
vous tapez l'URL localhost/r213/r213-tp1/exo3/index.php
Pour l'instant nous n'avons pas besoin de la base de données, mais si vous voulez ouvrir phpMyAdmin, allez simplement sur localhost/phpmyadmin ou cliquez sur bouton « Admin » du module MySQL.
Dans cet exercice vous allez faire une page qui affiche un texte avec deux variables.
Déclarez et initialisez deux variables, une pour le jour du mois (de type integer) et l'autre pour le mois (string). Donnez-leur les valeurs que vous voulez.
Affichez les deux variables dans une phrase. Par exemple, « Nous sommes le 31 mai ». Utilisez le code suivant :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>R213</title>
</head>
<body>
<h1>TP #1 / Exo 1</h1>
<p>
<!-- ajoutez votre code PHP ici -->
</p>
</body>
</html>
Il vous faut faire une concatenation de chaînes de caractères.
Dans cet exercice vous allez faire un formulaire pour que l'utilisateur puisse rentrer son année de naissance. Le site web dit ensuite si l'utilisateur est né dans le 21e siècle ou pas.
Vous avez besoin de deux fichiers : index.html contient le formulaire et reponse.php affiche la réponse. Utilisez le code suivant :
## index.html ##
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>R213</title>
</head>
<body>
<h1>TP #1 / Exo 2</h1>
<form method="post" action="reponse.php">
Dans quelle année es-tu né ?
<input type="number" name="annee">
<input type="submit" value="Envoyer">
</form>
</body>
</html>
## reponse.php ##
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>R213</title>
</head>
<body>
<h1>TP #1 / Exo 2</h1>
<p>
<?php
// ajoutez votre code PHP ici
?>
</p>
</body>
</html>
Il vous faut manipuler les données d'un formulaire et utiliser une structure if-else.
Dans cet exercice vous allez faire un script PHP qui genère un formulaire.
Tout est prêt, il ne reste qu'à ajouter un bouton radio pour chaque mois afin de choisir le mois de naissance. Utilisez le code suivant :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>R213</title>
</head>
<body>
<h1>TP #1 / Exo 3</h1>
<form method="post" action="reponse.php">
<p>
Donne ta date de naissance :
</p>
<p>
Jour : <input type="number" name="jour">
</p>
<p>
Mois :
<?php
// afficher <input type="radio" name="mois" value="1">Janvier <input type="radio" name="mois" value="2">Février ...
$mois = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
// ...
?>
</p>
<p>
Année : <input type="number" name="annee">
</p>
<p>
<input type="submit" value="Envoyer">
</p>
</form>
</body>
</html>
Faites attention, la valeur de janvier est 1, la valeur de février est 2, etc. Une boucle for vous serait utile pour cet exercice.
Dans cet exercice nous calculons l'age de l'utilisateur.
Vous avez déjà fait le formulaire dans l'exercice 2, vous n'avez qu'à afficher l'age. Pour cela, il faut la date d'aujourd'hui et un algorithme pour calculer l'age.
Pour trouver la date d'aujourd'hui, nous avons trois fonctions en PHP :
idate('d')
donne le jour du mois (1-31)idate('m')
donne le numéro du mois (1-12)idate('Y')
donne l'année avec 4 chiffresPour calculer l'age, utilisez l'algorithme suivant :
jour_a, mois_a, annee_a ← date aujourd'hui
jour_n, mois_n, annee_n ← date de naissance
if (mois_a < mois_n)
age ← anne_a - anne_n - 1
else if (mois_a == mois_n et jour_a < jour_n)
age ← anne_a - anne_n - 1
else
age ← anne_a - anne_n