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"; } } ?>
|
|