/** * Constructeur d'un administrateur en fonction de son login * @param login de l'administrateur * @return une instance d'administrateur sinon renvoi null */ public static function createFromLogin($login) { self::startSession(); if (strlen($login) == 8) { $pdo = myPDO::getInstance(); $rq1 = $pdo->prepare(<<<SQL \t\t\t\tSELECT numAdmin AS 'id' \t\t\t\tFROM Administrateur \t\t\t\tWHERE numAdmin = ? SQL ); $rq1->execute(array($login)); $rq1->setFetchMode(PDO::FETCH_CLASS, __CLASS__); if (($admin = $rq1->fetch()) !== false) { $_SESSION[self::session_key]['connected'] = true; //$admin->convention | crée une list de convention avec la class convention $admin->_convention = Convention::createFromAdmin($admin->getId()); //$admin->enseignant | Recupérer tous les ensignant en crée une methode Enseignant::getAll() dans la class enseignant $admin->enseignant = Enseignant::getAll(); $admin->saveIntoSession(); return $admin; } else { return null; } } else { throw new AuthenticationException("C'est pas un login de l'URCA!"); } }
/** * toHTML * @param String $type : type de réponse voulue de l'entreprise ("accepter" ou "refuser") * @return HTML */ public function toHTML($type) { $acceptPhrases = array("En attente", "Validé"); $acceptClass = array("attente", "valide"); $actionPhrase = array("accepter" => "Accepter", "refuser" => "Refuser"); $actionLien = array("accepter" => "accepterStage.php", "refuser" => "annulerStage.php"); $offre = OffreStage::createFromID($this->idOffre); $etudiant = Etudiant::createFromID($this->idEtu); $enseignant = Enseignant::createFromID($this->idEns); return <<<HTML <tr> <td><a href="../offres/offre.php?id={$this->idOffre}">{$offre->getIntitule()}</a></td> <td>{$etudiant->getNom()} {$etudiant->getPrenom()}</td> <td>{$enseignant->getNomPrenom()}</td> <td class="{$acceptClass[$this->acceptEnt]}">{$acceptPhrases[$this->acceptEnt]}</td> <td class="{$acceptClass[$this->acceptEns]}">{$acceptPhrases[$this->acceptEns]}</td> <td class="{$acceptClass[$this->acceptEtu]}">{$acceptPhrases[$this->acceptEtu]}</td> <td> <a href="{$actionLien[$type]}?idO={$this->idOffre}&idEtu={$this->idEtu}" >{$actionPhrase[$type]}</a></td> </tr> HTML; }
*/ if (preg_match("/^[-a-z]{5}[0-9]{3}\$/", phpCAS::getUser()) && phpCAS::getUser() != "gando002" && phpCAS::getUser() != "laudy001") { if (($etudiant = Etudiant::createFromLogin(phpCAS::getUser())) != null) { //$etudiant->saveIntoSession(); } else { try { Etudiant::inscription(phpCAS::getUser()); $etudiant = Etudiant::createFromLogin(phpCAS::getUser()); //$etudiant->saveIntoSession(); } catch (Exception $e) { echo $e->getMessage(); } } } else { if (($admin = Administrateur::createFromLogin(phpCAS::getUser())) != null) { //$admin->saveIntoSession(); } else { if (($enseignant = Enseignant::createFromLogin(phpCAS::getUser())) != null) { //$enseignant->saveIntoSession(); } else { try { Enseignant::inscription(phpCAS::getUser()); $enseignant = Enseignant::createFromLogin(phpCAS::getUser()); //$enseignant->saveIntoSession(); } catch (Exception $e) { echo $e->getMessage(); } } } } }
/** * 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; }