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>

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>

Articles connexes

Newsletter Avant de concevoir une newsletter, il convient de maitriser la fonction mail(). Quelques rappels : Envoi d'un email en texte brut ...
Structuration d'un site avec include() La fonction include() permet d'inclure une portion de code située dans un fichier externe à l'intérieur d'une page. Cette instruction permet d'éviter de réécrire les parties ...
Lire les données d'un formulaire HTML avec PHP Exemple simple Quand un internaute saisit des informations dans un formulaire, celles-ci sont facilement récupérables dans une variable PHP, grâce au placement d'attributs name...
Les sessions Les sessions permettent de passer des variables de pages en pages, ou de conserver certaines informations pendant la durée d'une visite sur un site. Fonctionnement Une sessi...
Gestion des images avec PHP Le langage PHP intègre un ensemble de fonctions relatives aux images. Il est ainsi possible de créer ses propres images dans une page, mais aussi d'obtenir des informations sur de...