Instruction conditionnelle : Quel âge as-tu ?
Nous allons demander l'âge de l'utilisateur via un petit formulaire HTML. Le langage PHP se chargera de répondre selon l'âge saisi, grâce à l'instruction conditionnelle if.
Quel âge as-tu ?
- Si l'âge est inférieur à 18 ans, répondre : "Tu es trop jeune."
- Si l'âge est supérieur ou égal à 18 ans et inférieur à 60 ans, répondre : "Tu as l'âge idéal."
- Si l'âge est supérieur ou égal à 60 ans, répondre : "Profite de la retraite."
Version simple
Tout d'abord, un formulaire HTML simple, nommé age.html dont l'action se chargera d’exécuter la page age.php
age.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Quel âge as-tu ?</h1>
<form method="post" action="age.php">
<input type="text" name="age" required>
<input type="submit" value="OK">
</form>
</body>
</html>
Le formulaire utilisant la méthode POST, les données seront envoyées de manière cachée à la page age.php. Comme le champ de texte contient l'attribut name="age", la variable contenant l'âge sera $_POST['age']
age.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Age</title>
</head>
<body>
<h1>Quel âge as-tu ?</h1>
<p>
<?php
if ($_POST['age'] < 18)
echo "Tu es trop jeune.";
if ($_POST['age'] >= 18 && $_POST['age'] < 60)
echo "Tu as l'âge idéal.";
if ($_POST['age'] >= 60)
echo "Profite de la retraite.";
?>
</p>
</body>
</html>
Un peu d'élégance avec la fonction isset()
La fonction isset() permet de vérifier l'existence d'une variable. Grâce à son usage, nous allons pouvoir fusionner les pages age.html et age.php.
ageelegant.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Age</title>
</head>
<body>
<h1>Quel âge as-tu ?</h1>
<form method="post">
<input type="text" name="age">
<input type="submit" value="OK">
</form>
<?php
// Si le formulaire est envoyé
if (isset($_POST['age'])) {
if ($_POST['age'] >= 60)
echo "Ne manque pas le prochain épisode de Plus belle la vie.";
if ($_POST['age'] >= 18 && $_POST['age'] < 60)
echo "Tu as l'âge idéal.";
if ($_POST['age'] < 18)
echo "Tu es trop jeune.";
}
?>
</body>
</html>
Vérification d'une chaine vide
Même si l'attribut HTML required peut résoudre le problème de la chaine vide, on peut ici utiliser la fonction empty() qui a l'avantage de fonctionner partout (même avec Internet Explorer 8, pour désigner le coupable).
ageelegant.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Age</title>
</head>
<body>
<h1>Quel âge as-tu ?</h1>
<form method="post">
<input type="text" name="age">
<input type="submit" value="OK">
</form>
<?php
// Si la variable age n'est vide
if (!empty($_POST['age'])) {
if($_POST['age'] >= 60)
echo "Ne manque pas le prochain épisode de Plus belle la vie.";
if ($_POST['age'] >= 18 && $_POST['age'] < 60)
echo "Tu as l'âge idéal.";
if ($_POST['age'] < 18)
echo "Tu es trop jeune.";
}
?>
</body>
</html>