/**
     * 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!");
        }
    }
Exemple #2
0
    /**
     * 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;
 }