Instruction conditionnelle : Quel âge as-tu ?

Quel âge as-tu ?

Voilà la question que nous allons poser aux internautes via un petit formulaire HTML. Le langage PHP se chargera de répondre selon l'âge saisi grâce à l'instruction conditionnelle if.

Cahier des charges :

  • 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>

age.php

<!doctype html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Age</title>
	</head>
	<body>
		<h1>Quel âge as-tu ?</h1>
		<p>
		<?php
		if ($age<18)
			echo "Tu es trop jeune.";

		if ($age>=18 && $age<60)
			echo "Tu as l'âge idéal.";

		if($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

ageelegant.php

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).

<!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 (empty($_POST['age']))
				echo "Tapez un âge.";
			else {
				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>

Articles connexes