<?php
// script inscritionverif.php
ini_set ("display_errors", TRUE); error_reporting (E_ALL) ; // afficher les messages d'erreur
// récupérer les paramètres (vides lors du 1er appel du formulaire)
$nom = @$_GET["nom"];
$age = @$_GET["age"];
$courriel = @$_GET["courriel"];
?>
<html>
<head>
<title>8eme exercice php - formulaire et validation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
function formulaire ($nom, $age, $courriel) { // afficher le formulaire
echo <<<FORMULAIRE
<form name="saisie" method="get" action="inscriptionverif.php">
Nom <input type="text" name="nom" value="$nom">
Age <input type="text" name="age" value="$age">
Courriel <input type="text" name="courriel" value="$courriel">
<input type="submit" name="Submit" value="Envoyer">
</form>
FORMULAIRE;
} // function formulaire ($nom, $age, $courriel)
if ($courriel == "") { // si 1er appel afficher le formulaire
echo <<<INTRO
<p><font size="2" color="#0000FF">7ème exercice : Mettre en application
la forme normale de transmission de variables entre scripts par formulaire :<br>
faire un script contenu dans le fichier inscription.php pour saisir (méthode
GET) les coordonnées du visiteur : nom, âge, et adresse de courriel.
</font></p>
INTRO;
formulaire ($nom, $age, $courriel);
} // if ($courriel == "")
else { // appel depuis le formulaire
// vérifier la saisie :
// age : entier positif, <123
// courriel : de la forme chaine@chaine.chaine
function verifie_courriel ($adresse_courriel) {
// on utilise la fonction php
// int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
// qui retourne la position numérique de la première occurrence de needle dans la chaîne de caractères haystack.
// Si needle n'est pas trouvé, strpos() retournera FALSE.
$position_arobase = strpos($adresse_courriel, "@");
if (!$position_arobase)
return FALSE;
else {
$position_point = strpos($adresse_courriel, ".", $position_arobase);
return $position_point;
}
}
$age_correct = ($age>0) && ($age<123) ;
$courriel_correct = verifie_courriel ($courriel);
if ($age_correct && $courriel_correct) {
// tout est OK : post-back : afficher les données saisies
echo <<<AFFICHER
<p>Vous avez saisi :<br>
Nom : $nom<br>
Age : $age<br>
Courriel : <a href="mailto:$courriel">$courriel</a><br>
</p>
<p align="center"><a href="inscriptionverif.php">Retour au formulaire de saisie</a></p>
AFFICHER;
} // if ($age_correct | $courriel_correct)
else {
// erreur de saisie : réafficher le formulaire en signalant les valeurs erronées
if (!$age_correct)
echo "<br><font color='red'>ERREUR : l'âge indiqué est erroné </font><br>" ;
if (!$courriel_correct)
echo "<br><font color='red'>ERREUR : l'adresse de courriel indiquée est erronée </font><br><br>" ;
formulaire ($nom, $age, $courriel);
} // else ($age_correct | $courriel_correct)
} // else ($courriel == "")
?>
</body>
</html>