Solution de l'exercice :

Source : lesson_08_form_1.php Résultat
<?php 
class validationFormulaire
{
    
// variable de classe privée, on met arbitrairement 
    //un souligné après le $
    //pour ne pas la confondre avec une variable normale
    
var $_listeErreurs;
    
//************************************************
    //methode pour regarder si la valeur n'a pas de 
    //chiffres ou autres symboles et renvoyer le résultat
    
function estNom($champ$errMessage)
    {
    
//on utilise une expression régulière pour savoir si le nom a 
    //des chances d'être valide
    //aucun des caractères listés ci-après ne doit figurer dans le nom
    //cela dans le but de constituer une aide à la saisie plutôt de 
    //d'empêcher un faux nom
    
$valeur $_POST[$champ] ;
    
$pattern "'/[]1234567890<\>\&\"\#\{\(\[\|\^\@\)\=";
    
$pattern.= "\}\,\?\;\:\\\!\§\/\*\%\$\£\-\+\°]/'";
    if (! 
preg_match($pattern$valeur))
    {
        return 
true;
    }
    else
    {
        
//on remplit la liste d'erreur avec le nom du champ, 
        //la valeur saisie, le message d'erreur à renvoyer
        
$this->_listeErreurs[] = array("champ" => $champ
        
"valeur" => $valeur"errMessage" => $errMessage);
        return 
false;
        }
    }
    function 
estDateNaissance($champ$errMessage)
    {
    
$valeur $_POST[$champ] ;  // on récupère la valeur du formulaire
    
$current getdate();       // on récupère la date en cours
    
$annéeEnCours $current["year"];   // on récupère l'année en cours
    
if (is_numeric($valeur))
    {
        (
$valeur 1890 and $valeur < ($annéeEnCours -6)) ? 
         
true $this -> chargeErrorList($champ,$valeur,$errMessage); 
         }
    else
    {
        
$this -> chargeErrorList($champ,$valeur,$errMessage) ;
    }
    }
    
//--------------------------------------------------
    // fonction pour renvoyer la liste des erreurs
    
function chargeErrorList($champ,$valeur,$errMessage)
    {
        
//on remplit la liste d'erreur avec le nom du champ, 
        //la valeur saisie, le message d'erreur à renvoyer
        
$this->_listeErreurs[] = array("champ" => $champ
           
"valeur" => $valeur"errMessage" => $errMessage);
        return 
false;
    }
    
//---------------------------------------------------
    
function getErrorList()
    {
        return 
$this->_listeErreurs;
    }
    
// fonction pour dire si une erreur a eu lieu
    
function erreur()
    {
        if (
sizeof($this->_listeErreurs) > 0)
        {
            return 
true;
        }
        else
        {
            return 
false;
        }
    }
// end 
}

//************fin de la classe début du formulaire ****
//on regarde si le nom a déja été saisi
$ex $_REQUEST["sol_file"];//nom de l'exercice pour le form
$ex "lesson_08_form_1.php";
if (empty(
$_POST['nom']) or empty($_POST['prénom']) 
    or empty(
$_POST['dateNaissance']))
{
    echo 
"<form action=../commons/show_solutions.php?exercise=$ex 
    method=post>"

    echo 
"<table>";
    echo 
"<tr><td><small>Entrez votre nom : </td>
        <td><input type=text name=nom> </td></tr>"

    echo 
"<tr><td><small>Entrez votre prénom : </td>
        <td><input type=text name=prénom> </td></tr>"

    echo 
"<tr><td><small>Votre année de naissance sur 4 chiffres:</td>
        <td><input type=text name=dateNaissance> </td></tr>"

    echo 
"<tr><td></td><td><small><input type='submit' value='valider'>
        </form></td></tr></table>"

}
else
{
    
// on crée un objet en créant une instance de la classe
    
$maValidation = new validationFormulaire();
    
    
// perform validation
    
$maValidation->estNom("nom"
        
"Ce champ contient des caractères interdits"); 
    
$maValidation->estNom("prénom"
        
"Ce champ contient des caractères interdits"); 
    
$maValidation->estDateNaissance("dateNaissance"
        
"Ce champ contient une valeur incohérente"); 
    
    if (
$maValidation->erreur())
    {
        
$errors $maValidation->getErrorList();
        
        echo 
"<b><small>L'opération n'a pas pu être 
          effectuée car une ou plusieurs
      informations sont manquantes ou mal saisies:</b> <p>"
;
        echo 
"<ul>";
        foreach (
$errors as $err)
        {
        echo 
"<li></small><small>Dans le champ : "$err['champ']. ",
        vous avez saisi : "
$err['valeur']." "$err['errMessage'] ;
        }   
        echo 
"</ul>";
    }
    else
    {
        
// do something useful with the data
        
echo "<small>Les données semblent valides";
    }
}
?>

Entrez votre nom :
Entrez votre prénom :
Votre année de naissance sur 4 chiffres:


Tous droits réservés. 2005-2020