示例#1
0
 /**
  * fonction qui permet d'encrypter un mot de passe, une fois encrype, on save les params pour le retrouver en bdd
  * @param string|null $mdp
  * @param $id_identite
  * @return string
  */
 public static function setEncryptMdp($mdp, $id_identite = null)
 {
     $encrypt_str = ChaineCaractere::random(154);
     //on cache le mdp
     $mdp = md5($mdp);
     //récupération de la logneur du mot de passe
     $longeur_mdp = strlen($mdp);
     //on va couper le mot de passe en 2 suivant un nombre aleatoire
     $nb_aleatoire_mdp = rand(3, $longeur_mdp - 2);
     $bout1_mdp = mb_substr($mdp, 0, $longeur_mdp / 2, "UTF-8");
     $bout2_mdp = mb_substr($mdp, $longeur_mdp / 2, $longeur_mdp, "UTF-8");
     //on stock la taille des bouts pour pouvoir les décrypter
     $taille_bout1 = strlen($bout1_mdp);
     $taille_bout2 = strlen($bout2_mdp);
     //on insere le premier bout aleatoirement dans le hashmdp
     //on calcul sa longeur total (celle duhash + la logneur du mdp que l'on va rajouter dedans)
     $longueur_hash = strlen($encrypt_str);
     $debut_bout1 = rand(0, $longueur_hash / 2);
     //on rajouter le premier bout dans le mot de passe + recalcule de la longeur du hash avec le mdp add
     $encrypt_str = mb_substr($encrypt_str, 0, $debut_bout1) . $bout1_mdp . mb_substr($encrypt_str, $debut_bout1, $longueur_hash);
     //on insere le second bout aleatoirement dans le hashmdp
     //on calcul sa longeur total (celle duhash + la logneur premier bout du mdp que l'on va rajouter dedans)
     $longueur_hash = strlen($encrypt_str);
     $debut_bout2 = rand($longueur_hash / 2, $longueur_hash);
     //on rajoute le deuxieme
     $mdp_encrypt = mb_substr($encrypt_str, 0, $debut_bout2) . $bout2_mdp . mb_substr($encrypt_str, $debut_bout2, $longueur_hash);
     if ($id_identite != null) {
         self::setSaveParams("{$taille_bout1}, {$debut_bout2}, {$nb_aleatoire_mdp}, {$taille_bout2}, {$debut_bout1}, " . ChaineCaractere::random(20), $id_identite);
     } else {
         self::$params = "{$taille_bout1}, {$debut_bout2}, {$nb_aleatoire_mdp}, {$taille_bout2}, {$debut_bout1}, " . ChaineCaractere::random(20);
     }
     return $mdp_encrypt;
 }
示例#2
0
 /**
  * fonction qui change le format heure 12:10 en 12h10
  * @param $temps
  * @return mixed
  */
 public static function ChangerFormatHeure($temps)
 {
     if (ChaineCaractere::FindInString($temps, ":") === true) {
         $chaine = str_replace(":", "h", $temps);
         return $chaine;
     } else {
         FlashMessage::setFlash("La valeur entrée n'est pas de type h:m");
         FlashMessage::getFlash();
         die;
     }
 }
 /**
  * fonction qui permet de modifier une page en fonction de son id
  * @param $id_page
  * @param $balise_title
  * @param $url
  * @param $meta_description
  * @param $titre_page
  * @param $parent
  * @param $contenu
  */
 public function setModifierPage($id_page, $balise_title, $url, $meta_description, $titre_page, $parent, $affiche = 1)
 {
     $dbc = \core\App::getDb();
     //on trouve l'ancien fichier à parir de la fin de l'url
     $this->getHeadPage($id_page);
     $this->getContenuPage($id_page);
     $old_url = explode("/", $this->url);
     $filename = ROOT . "app/views/" . end($old_url) . ".php";
     //si le fichier existe on modifie le tout
     if (file_exists($filename) || $id_page == 1) {
         $this->id_page = $id_page;
         $url = ChaineCaractere::setUrl($url);
         $err_balise_title_char = "Le titre pour le navigateur ne doit pas dépasser 70 caractères";
         $err_balise_title_egalite = "Ce titre est déjà présent en base de données, merci d'en choisir un autre pour optimiser le référencement de votre site";
         $err_balise_title = $this->getVerifChamp("page", "ID_page", "balise_title", $balise_title, 70, $err_balise_title_char, $err_balise_title_egalite, $this->id_page);
         $err_url_char = "L'url ne doit pas dépasser 92 caractères";
         $err_url_egalite = "Cette url est déjà présent en base de données, merci d'en choisir une autre pour ne pas avoir de conflit entre vos pages";
         $err_url = $this->getVerifChamp("page", "ID_page", "url", $url, 92, $err_url_char, $err_url_egalite, $this->id_page);
         $err_meta_description_char = "La description de cette page ne doit pas dépasser 158 caractères";
         $err_meta_description_egalite = "Cette description est déjà présent en base de données, merci d'en choisir une autre pour optimiser le référencement de votre site";
         $err_meta_description = $this->getVerifChamp("page", "ID_page", "meta_description", $meta_description, 158, $err_meta_description_char, $err_meta_description_egalite, $this->id_page);
         $err_titre_page_char = "Le titre de cette page ne doit pas dépasser 50 caractères";
         $err_titre_page_egalite = "Cette titre de page est déjà présent en base de données, merci d'en choisir un autre pour ne pas avoir de conflit dans votre navigation";
         $err_titre_page = $this->getVerifChamp("page", "ID_page", "titre", $titre_page, 50, $err_titre_page_char, $err_titre_page_egalite, $this->id_page);
         if (App::getErreur() !== true) {
             $new_url = explode("/", $url);
             $new_filename = ROOT . "app/views/" . end($new_url) . ".php";
             rename($filename, $new_filename);
             $parent = intval($this->getParentId($parent));
             $dbc->update("titre", $titre_page)->update("url", $url)->update("meta_description", $meta_description)->update("balise_title", $balise_title)->update("parent", $parent)->update("affiche", $affiche)->from("page")->where("ID_page", "=", $id_page, "", true)->set();
             $this->setModifierLienNavigation("ID_page", $id_page, $this->getParentId($parent), $affiche);
         } else {
             $this->setErreurContenus($balise_title, $url, $meta_description, $titre_page, $parent, $err_balise_title, $err_url, $err_meta_description, $err_titre_page);
         }
     } else {
         FlashMessage::setFlash("Impossible de modifier cette page, veuillez contacter votre administrateur pour corriger ce problème");
         $this->erreur = true;
     }
 }
示例#4
0
     } else {
         if ($module !== false) {
             $explode = explode("/", $lien, 3);
             require_once ROOT . $explode[0] . "/" . $explode[1] . "/admin/controller/" . $explode[2] . ".php";
         } else {
             require_once "admin/controller/" . $lien . ".php";
         }
     }
 } else {
     if ($page == "login") {
         require "admin/views/template/login_admin.php";
     } else {
         if (!isset($_SESSION["idlogin" . CLEF_SITE])) {
             Connexion::setObgConnecte(WEBROOT . "administrator/login");
         } else {
             if (\core\functions\ChaineCaractere::FindInString($page, "modules/") == true) {
                 //utilisé pour initialiser les modules
                 $page_module = $page;
                 $explode = explode("/", $page, 3);
                 $page = "../../" . $explode[0] . "/" . $explode[1] . "/admin/views/" . $explode[2];
             }
             //pour les pages normales
             //pour l'acces a la gestion des comptes, si pas activée oin renvoi une erreur
             if ($droit_acces->getDroitAccesPage("gestion-comptes/index") == false && $page == "gestion-comptes") {
                 FlashMessage::setFlash("L'accès à cette page n'est pas activé, veuillez contacter votre administrateur pour y avoir accès");
                 header("location:" . WEBROOT . "administrator");
             } else {
                 if ($droit_acces->getDroitAccesPage("gestion-droits-acces/index") == false && $page == "gestion-droits-acces") {
                     FlashMessage::setFlash("L'accès à cette page n'est pas activé, veuillez contacter votre administrateur pour y avoir accès");
                     header("location:" . WEBROOT . "administrator");
                 }
示例#5
0
 private function getLienPage($url)
 {
     if (ChaineCaractere::FindInString($url, "http://")) {
         return $url;
     } else {
         return WEBROOT . $url;
     }
 }
示例#6
0
 /**
  * fonction qui permet de tester qu'une route existe bien
  * appellee dans redirectError.class.php
  * @param $url
  */
 public function getRouteModuleExist($url)
 {
     $dbc = \core\App::getDb();
     $query = $dbc->select()->from("module")->get();
     if (is_array($query) && count($query) > 0) {
         foreach ($query as $obj) {
             $test_module = ChaineCaractere::FindInString($url, $obj->url);
             $test_module1 = ChaineCaractere::FindInString($url, str_replace("/", "", $obj->url));
             $module_activer = \core\modules\GestionModule::getModuleActiver($obj->nom_module);
             if (($test_module === true || $test_module1 === true) && $module_activer === true) {
                 return true;
             }
         }
     }
 }
示例#7
0
 /**
  * @param $nom_fichier
  * fonction qui permet de dire qu'il faut recharger le cache d'un fichier spécifique
  * appeler par des controller (dans des modules ou dans l'admin...)
  */
 public static function setReloadCache($nom_fichier)
 {
     $dbc = App::getDb();
     $nom_fichier = ChaineCaractere::setUrl($nom_fichier);
     $nom_fichier = str_replace("/", "-", $nom_fichier);
     $value = ["reload" => 1, "nom_fichier" => $nom_fichier];
     $dbc->prepare("UPDATE cache SET reload_cache=:reload WHERE nom_fichier LIKE :nom_fichier", $value);
 }
示例#8
0
 /**
  * fonction quir genere un mot de passe aleatoire pour le compte spécifié en param
  * @param $id_identite
  */
 public function setReinitialiserMdp($id_identite)
 {
     $dbc = \core\App::getDb();
     $this->getunUser($id_identite);
     if ($this->mail != "" || $this->mail != null) {
         $mdp = ChaineCaractere::random(6);
         $mdp_encode = Encrypt::setEncryptMdp($mdp, $id_identite);
         FlashMessage::setFlash("Mot de passe réinitialisé avec succès ! L'utilisateur à reçu un E-mail avec son nouveau mot de passe", "success");
         $dbc->update("mdp", $mdp_encode)->update("last_change_mdp", date("Y-m-d"))->from("identite")->where("ID_identite", "=", $id_identite)->set();
         $mail = new Mail();
         $mail->setEnvoyerMail("Réinitialisation de votre E-mail effectuée", "Votre mot de passe a été réinitialisé", $this->mail);
     } else {
         FlashMessage::setFlash("le mot de passe de {$this->pseudo} ne peu pas être réinitialisé car il ne possède pas d'E-mail");
         $this->erreur = true;
     }
 }