/** * 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; }