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>