Ejemplo n.º 1
0
 /**
  * Traite un formulaire d'inscription
  * @param  $_REQUEST $formulaire : les données du formulaire d'inscription
  * @return html : le message (erreur ou réussite) correspondant à l'état de l'inscription
  */
 public function inscription($formulaire)
 {
     $res = "";
     // chaine de caractère retournée
     if ($formulaire != null && isset($formulaire["typeInscription"])) {
         $type = $formulaire["typeInscription"];
         if ($type == "etudiant") {
             /*
              * INSCRIPTION ETUDIANT
              */
             // Vérification de l'existence et du remplissage des champs
             if (!isset($formulaire["nom"]) || empty($formulaire["nom"])) {
                 $res .= "Le champ \"nom\" est obligatoire<br>";
             }
             if (!isset($formulaire["prenom"]) || empty($formulaire["prenom"])) {
                 $res .= "Le champ \"prenom\" est obligatoire<br>";
             }
             if (!isset($formulaire["login"]) || empty($formulaire["login"])) {
                 $res .= "Le champ \"login\" est obligatoire<br>";
             }
             if (!isset($formulaire["email"]) || empty($formulaire["email"])) {
                 $res .= "Le champ \"email\" est obligatoire<br>";
             }
             if (!isset($formulaire["ville"]) || empty($formulaire["ville"])) {
                 $res .= "Le champ \"ville\" est obligatoire<br>";
             }
             if (!isset($formulaire["code_postal"]) || empty($formulaire["code_postal"])) {
                 $res .= "Le champ \"code postal\" est obligatoire<br>";
             }
             if (!isset($formulaire["num_rue"]) || empty($formulaire["num_rue"])) {
                 $res .= "Le champ \"numero de la rue\" est obligatoire<br>";
             }
             if (!isset($formulaire["nom_rue"]) || empty($formulaire["nom_rue"])) {
                 $res .= "Le champ \"nom de la rue\" est obligatoire<br>";
             }
             // Valeurs par défaut des champs facultatifs
             if (!isset($formulaire["compl_adr"])) {
                 $complAdr = "";
             } else {
                 $complAdr = $formulaire["compl_adr"];
             }
             // Vérifications de la validité des champs remplis
             if (!preg_match("/^[0-9]{5,5}\$/", $formulaire["code_postal"])) {
                 $res .= "Le code postal entré n'est pas valide<br>";
             }
             if (!filter_var($formulaire["email"], FILTER_VALIDATE_EMAIL)) {
                 $res .= "L'adresse e-mail entree n'est pas valide<br>";
             }
             // Vérification de la disponibilité de certains champs
             $nbLogin = count(array_filter(array_merge($this->listeEtudiants, $this->listeEnseignants, $this->listeEntreprises), function ($e) use($formulaire) {
                 if ($e != null) {
                     return $e->getLogin() == $formulaire["login"];
                 } else {
                     return false;
                 }
             }));
             if ($nbLogin > 0) {
                 $res .= "Ce login est deja utilise.<br>";
             }
             $nbEmail = count(array_filter(array_merge($this->listeEtudiants, $this->listeEnseignants, $this->listeEntreprises), function ($e) use($formulaire) {
                 if ($e != null) {
                     return $e->getEmail() == $formulaire["email"];
                 } else {
                     return false;
                 }
             }));
             if ($nbEmail > 0) {
                 $res .= "Cette adresse e-mail est deja utilisee.<br>";
             }
             // Si $res est toujours vide (aucune erreur), on ajoute dans la BD!
             if ($res == "") {
                 Etudiant::nvEtudiant(htmlspecialchars($formulaire["login"]), htmlspecialchars($formulaire["nom"]), htmlspecialchars($formulaire["prenom"]), 'H', $formulaire["email"], htmlspecialchars($formulaire["ville"]), $formulaire["code_postal"], htmlspecialchars($formulaire["num_rue"]), htmlspecialchars($formulaire["nom_rue"]), $complAdr);
                 $res = "Inscription réalisée.";
             }
         } else {
             if ($type == "entreprise") {
                 /*
                  * INSCRIPTION ENTREPRISE
                  */
                 // Vérification de l'existence et du remplissage des champs
                 if (!isset($formulaire["nom"]) || empty($formulaire["nom"])) {
                     $res .= "Le champ \"nom\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["code"]) || empty($formulaire["code"])) {
                     $res .= "Le champ \"SIRET\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["email"]) || empty($formulaire["email"])) {
                     $res .= "Le champ \"email\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["login"]) || empty($formulaire["login"])) {
                     $res .= "Le champ \"login\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["email"]) || empty($formulaire["email"])) {
                     $res .= "Le champ \"email\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["ville"]) || empty($formulaire["ville"])) {
                     $res .= "Le champ \"ville\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["code_postal"]) || empty($formulaire["code_postal"])) {
                     $res .= "Le champ \"code postal\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["num_rue"]) || empty($formulaire["num_rue"])) {
                     $res .= "Le champ \"numero de la rue\" est obligatoire<br>";
                 }
                 if (!isset($formulaire["nom_rue"]) || empty($formulaire["nom_rue"])) {
                     $res .= "Le champ \"nom de la rue\" est obligatoire<br>";
                 }
                 // Valeurs par défaut des champs facultatifs
                 if (!isset($formulaire["compl_adr"])) {
                     $complAdr = "";
                 } else {
                     $complAdr = $formulaire["compl_adr"];
                 }
                 if (!isset($formulaire["site_web"])) {
                     $siteWeb = "";
                 } else {
                     $siteWeb = $formulaire["site_web"];
                 }
                 // Vérifications de la validité des champs remplis
                 if (!preg_match("/^[0-9]{5,5}\$/", $formulaire["code_postal"])) {
                     $res .= "Le code postal entre n'est pas valide<br>";
                 }
                 if (!filter_var($formulaire["email"], FILTER_VALIDATE_EMAIL)) {
                     $res .= "L'adresse e-mail entree n'est pas valide<br>";
                 }
                 // Vérification de la validité d'une URL
                 // http://php.net/manual/en/function.preg-match.php#93824
                 $regex = "((https?|ftp)\\:\\/\\/)?";
                 // SCHEME
                 $regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?";
                 // User and Pass
                 $regex .= "([a-z0-9-.]*)\\.([a-z]{2,4})";
                 // Host or IP
                 $regex .= "(\\:[0-9]{2,5})?";
                 // Port
                 $regex .= "(\\/([a-z0-9+\$_-]\\.?)+)*\\/?";
                 // Path
                 $regex .= "(\\?[a-z+&\$_.-][a-z0-9;:@&%=+\\/\$_.-]*)?";
                 // GET Query
                 $regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?";
                 // Anchor
                 if ($siteWeb != "" && !preg_match("/^{$regex}\$/", $siteWeb)) {
                     // on ne vérifie l'URL que si le case n'est pas vide
                     $res .= "L'URL du site web n'est pas valide<br>";
                 }
                 // Vérification de la disponibilité de certains champs
                 $nbLogin = count(array_filter(array_merge($this->listeEtudiants, $this->listeEnseignants, $this->listeEntreprises), function ($e) use($formulaire) {
                     if ($e != null) {
                         return $e->getLogin() == $formulaire["login"];
                     } else {
                         return false;
                     }
                 }));
                 if ($nbLogin > 0) {
                     $res .= "Ce login est deja utilise.<br>";
                 }
                 $nbEmail = count(array_filter(array_merge($this->listeEtudiants, $this->listeEnseignants, $this->listeEntreprises), function ($e) use($formulaire) {
                     if ($e != null) {
                         return $e->getEmail() == $formulaire["email"];
                     } else {
                         return false;
                     }
                 }));
                 if ($nbEmail > 0) {
                     $res .= "Cette adresse e-mail est deja utilisee.<br>";
                 }
                 // Si $res est toujours vide (aucune erreur), on ajoute dans la BD!
                 if ($res == "") {
                     Entreprise::nvEntreprise(htmlspecialchars($formulaire["login"]), $formulaire["email"], htmlspecialchars($formulaire["nom"]), htmlspecialchars($formulaire["code"]), htmlspecialchars($formulaire["ville"]), $formulaire["code_postal"], htmlspecialchars($formulaire["num_rue"]), htmlspecialchars($formulaire["nom_rue"]), $complAdr, $siteWeb, htmlspecialchars($formulaire["description"]));
                     $res = "Inscription realisee.";
                 }
             } else {
                 if ($type == "enseignant") {
                     /*
                      * INSCRIPTION ENSEIGNANT
                      */
                     // Vérification de l'existence et du remplissage des champs
                     if (!isset($formulaire["nom"]) || empty($formulaire["nom"])) {
                         $res .= "Le champ \"nom\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["prenom"]) || empty($formulaire["prenom"])) {
                         $res .= "Le champ \"prenom\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["login"]) || empty($formulaire["login"])) {
                         $res .= "Le champ \"login\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["email"]) || empty($formulaire["email"])) {
                         $res .= "Le champ \"email\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["ville"]) || empty($formulaire["ville"])) {
                         $res .= "Le champ \"ville\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["code_postal"]) || empty($formulaire["code_postal"])) {
                         $res .= "Le champ \"code postal\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["num_rue"]) || empty($formulaire["num_rue"])) {
                         $res .= "Le champ \"numero de la rue\" est obligatoire<br>";
                     }
                     if (!isset($formulaire["nom_rue"]) || empty($formulaire["nom_rue"])) {
                         $res .= "Le champ \"nom de la rue\" est obligatoire<br>";
                     }
                     // Valeurs par défaut des champs facultatifs
                     if (!isset($formulaire["compl_adr"])) {
                         $complAdr = "";
                     } else {
                         $complAdr = $formulaire["compl_adr"];
                     }
                     if (!isset($formulaire["domaine"])) {
                         $domaine = "";
                     } else {
                         $domaine = $formulaire["domaine"];
                     }
                     // Vérifications de la validité des champs remplis
                     if (!preg_match("/^[0-9]{5,5}\$/", $formulaire["code_postal"])) {
                         $res .= "Le code postal entre n'est pas valide<br>";
                     }
                     if (!filter_var($formulaire["email"], FILTER_VALIDATE_EMAIL)) {
                         $res .= "L'adresse e-mail entree n'est pas valide<br>";
                     }
                     // Vérification de la disponibilité de certains champs
                     $nbLogin = count(array_filter(array_merge($this->listeEtudiants, $this->listeEnseignants, $this->listeEntreprises), function ($e) use($formulaire) {
                         if ($e != null) {
                             return $e->getLogin() == $formulaire["login"];
                         } else {
                             return false;
                         }
                     }));
                     if ($nbLogin > 0) {
                         $res .= "Ce login est deja utilise.<br>";
                     }
                     $nbEmail = count(array_filter(array_merge($this->listeEtudiants, $this->listeEnseignants, $this->listeEntreprises), function ($e) use($formulaire) {
                         if ($e != null) {
                             return $e->getEmail() == $formulaire["email"];
                         } else {
                             return false;
                         }
                     }));
                     if ($nbEmail > 0) {
                         $res .= "Cette adresse e-mail est deja utilisee.<br>";
                     }
                     // Si $res est toujours vide (aucune erreur), on ajoute dans la BD!
                     if ($res == "") {
                         Enseignant::nvEnseignant(htmlspecialchars($formulaire["login"]), htmlspecialchars($formulaire["nom"]), htmlspecialchars($formulaire["prenom"]), 'H', $formulaire["email"], htmlspecialchars($formulaire["ville"]), $formulaire["code_postal"], htmlspecialchars($formulaire["num_rue"]), htmlspecialchars($formulaire["nom_rue"]), $complAdr, $domaine);
                         $res = "Inscription réalisée.";
                     }
                 } else {
                     $res = "Erreur dans le formulaire d'inscription";
                 }
             }
         }
     } else {
         $res = "Erreur dans le formulaire d'inscription";
     }
     return $res;
 }