From 263a5d390ce649c9a79d83ed755a36b100dc5bf9 Mon Sep 17 00:00:00 2001 From: KANE LAZENI Date: Sun, 19 Apr 2026 08:18:00 +0000 Subject: [PATCH] a --- Controleur/ControleurConnexion.php | 3 +- Controleur/ControleurConnexiondecompte.php | 3 +- Controleur/ControleurRecherche.php | 26 -- Framework/Csrf.php | 185 +++++--- Framework/Session.php | 145 +++++-- Framework/Vue.php | 463 ++++++++++++++------- 6 files changed, 541 insertions(+), 284 deletions(-) diff --git a/Controleur/ControleurConnexion.php b/Controleur/ControleurConnexion.php index 2b637a79..e8ac7479 100755 --- a/Controleur/ControleurConnexion.php +++ b/Controleur/ControleurConnexion.php @@ -53,7 +53,8 @@ require_once 'Modele/Societeusercentral.php'; $_SESSION['codeSociete'] = $codeSociete; $_SESSION['lang'] = $langue; - $_SESSION['csrf_token_submieted'] = ""; + // $_SESSION['csrf_token_submieted'] = ""; + $_SESSION['csrf_token_submieted'] = Csrf::generateToken(); $societeExiste = $this->societeusercentral->existeligneconnexion($codeSociete); diff --git a/Controleur/ControleurConnexiondecompte.php b/Controleur/ControleurConnexiondecompte.php index 621e0c2d..f6d630ec 100755 --- a/Controleur/ControleurConnexiondecompte.php +++ b/Controleur/ControleurConnexiondecompte.php @@ -53,7 +53,8 @@ require_once 'Modele/Societeusercentral.php'; public function connecter() { // session_regenerate_id(true);// 18/04/2026 - $_SESSION['csrf_token_submieted'] = ""; + // $_SESSION['csrf_token_submieted'] = ""; + $_SESSION['csrf_token_submieted'] = Csrf::generateToken(); $idSaisie = $_SESSION['idSaisie']; $utilisateur = $this->utilisateur->getUtilisateurIdsaisie($idSaisie); diff --git a/Controleur/ControleurRecherche.php b/Controleur/ControleurRecherche.php index 9e4d79b9..efc6dcea 100755 --- a/Controleur/ControleurRecherche.php +++ b/Controleur/ControleurRecherche.php @@ -28,10 +28,6 @@ class ControleurRecherche extends Controleur { $this->beneficiaire->getModeBiometrie(); if(!empty($_POST)) { - - // var_dump($_POST); - // exit; - $csrf_token = trim($this->requete->getParametreFormulaire("csrf_token")); $numeroBeneficiaire = trim($this->requete->getParametreFormulaire("numeroBeneficiaire")); @@ -41,28 +37,7 @@ class ControleurRecherche extends Controleur { $telephonePortable = trim($this->requete->getParametreFormulaire("telephonePortable")); $email = trim($this->requete->getParametreFormulaire("email")); - /* - $numeroBeneficiaire=trim($_POST['numeroBeneficiaire']); - $numeroAdherent=trim($_POST['numeroAdherent']); - $nomBeneficiaire=trim($_POST['nomBeneficiaire']); - $prenomsBeneficiaire=trim($_POST['prenomsBeneficiaire']); - $telephonePortable=trim($_POST['telephonePortable']); - $email=trim($_POST['email']); - */ - - /* - var_dump( - array( - "submittedToken" => $csrf_token, - "HTTP_REFERER" => $_SERVER['HTTP_REFERER'], - "csrf_token_sessiin" => $_SESSION['csrf_token'], - ) - ); - exit; - */ - if (!Csrf::validateToken($csrf_token)) { - // Distinguer expiration et tentative malveillante $_SESSION['flash_error'] = 'Votre session a expiré. Veuillez réessayer.'; header('Location: ' . $_SERVER['HTTP_REFERER']); @@ -88,7 +63,6 @@ class ControleurRecherche extends Controleur { $beneficiaires = $this->beneficiaire->getBeneficiaireVide(); $derniernumerobeneficiaires = '0'; } - // if ($beneficiaires->rowCount() == 1) if (count($beneficiaires) == 1) diff --git a/Framework/Csrf.php b/Framework/Csrf.php index d201dc1c..bef59679 100755 --- a/Framework/Csrf.php +++ b/Framework/Csrf.php @@ -1,63 +1,122 @@ - bin2hex(random_bytes(32)), - 'created_at' => time(), - ]; - } - return $_SESSION['csrf_token']['value']; - } - - /** - * Vérifie si le token a expiré - */ - private static function isExpired(): bool { - $createdAt = $_SESSION['csrf_token']['created_at'] ?? 0; - return (time() - $createdAt) > self::EXPIRATION; - } - - /** - * Valide le token soumis - */ - public static function validateToken(string $submittedToken): bool { - // Rejeté si la session ne contient pas de token - if (empty($_SESSION['csrf_token'])) return false; - - // Rejeté si expiré - if (self::isExpired()) { - self::regenerate(); - return false; - } - - // Comparaison sécurisée (résistante aux attaques par timing) - return hash_equals($_SESSION['csrf_token']['value'], $submittedToken); - } - - /** - * Champ HTML à insérer dans les formulaires - */ - public static function field(): string { - $token = self::generateToken(); - - // return ''; - } - - /** - * Régénère le token (déconnexion, ou expiration) - */ - public static function regenerate(): void { - $_SESSION['csrf_token'] = [ - 'value' => bin2hex(random_bytes(32)), - 'created_at' => time(), - ]; - } -} \ No newline at end of file +ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); +?> +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 +5hKV= +HR+cPvgPNoO9OQG9r2tA1NhBPeEVsvBtIpMSaBsuaSA+3wTkOunXmZhTxtUYCzfG6IBnrY1w/DtW +axsydqUmcUxjELf1EMPnMuZpnl0lMgSNRUUrgutOP5iWK/Pf+0FCN6DHJF/q3u6qMYlk9yHlWOeV +I1JhzdBubCR9uA3VTLhtdJDRV9PJzrhKUcplkIJE/ULrSd+AdbECS9kUXNxVoFRKndggvQ9kxy2h +QsN8KrvV9vltd5axGoVayg63XcKzZY+cT20mMiLomLpQ7rQ4m/a2lPIYdRvoHE9mYO9ArjQR1KIK +0EmSypwpCekut1NPSoe2Njgy7Sqaq3TRgwKJtTFEmYULj9NTJrpENGymRnU53KxB0ohPr4ibWyax +KvVM5eh8sTCeL1NQmBEW+DGJVQZTUMFbX+qLX2sYmTjOKZNIbS+iZTyU5d1/AFDtWjQXcLXJbBqN +d+2pqvmzcsCCGIW5S3SDT7vwhtDUPLQoGVeidI1tiVonYyWP0vBSlyD6irGlElm0r6LrV8XhDFj0 +ZGl8BB+TPrylCQb/wE8dQRCVGradC3XDfhaU3kGv2IsRkbeXi2vRSzUgOsssUObtyZsoGQyK9Jl0 +1zs6qyBII4xvFNl2EKALVJ9Ktvn54GkCIxnbOEKtybAffWF/6AuIWI5i2jmMXPVd8L+GdvyaHVuO +PeacmrLy37IzhsrEDUg1hezkkLcTDDS7/++7K2SDs6BKZ+pcHdwLLWr9jWG+2iBUtIIIvoVJXIxQ +AvltPoeuBYTUW9b1tPFKdDUR4ZUNbXNBp2AX6KaF1XkK3M4H7Nv2HTYD7h6lmr6uYJFVeY/aG25o +V7oDYc2+WZeDgDIngcK4lUngEve6150KOXLiqhBqUCKK1FAonj8XPKBP2rwwLHJCgifJy7PMa+4f +qBZ8WSLJ2WcYzjXi4XtoDfpuOD4XDLbC0RQA06or2Lv57h2USjb1A2ho1gKKP8KoJ3cfXK5FZoIc +g76PIuNPT38WAVc0H9BqAvBQf1oR1hNnESolT/MV/sm1TE9VEZ96Hxebowhv0jkHB3FUtH7tPQW9 +aPIdRipRi/rlAAmHtZYaQ0OBQ1wFKecNODzCh0X8N9GxZaTaSOFFgJOTJGVZvW2jXCuOI2zZyFC/ +dId0REkbE5th9nuS0vDBQGE1pbGQeInRf/Xuxt+Rwyrlz7CvfWbvOR1DvMwgxmwoFTtw79MRw/Cw +1y2ea16cveLu428KxpZ32k2Hq6K6G5NMXnzeiNYnkkNQVU9Bv2SWZG63nX2zzj3v05pNLtrhxe5j +il75bjtTPPVSYrgKsCYyP+k8G9j/9EyfzI4v/7H8x2NQRm5lX0bJ/pk7h37JJRoppQTgX0E682uJ +kUbKPx6lNrVCb/5zbjWuZF1A0BugMZQj/NqmpwrBZ7P/69SXMMWcG24Jnkoxu9wBsJ8LO/8EMBM9 +vA/mCJUK4E0JOCJztrXODo8aOXx8Exopk2l1wsIwYXAQz/2Y2baU8QUj1qtfwuW59tmZIJqeiI7Z +jkSPTjk4jUzoovW5rKHQHQoCHjlCYsVI8KSxd8kYcThZoJfaZRBpb6418j1LTwG13aVr/2AteMME +Bny7kzbQfQgmlgRC6FZblkF2TvUr6keN8zZIg2AZiYhRJ+5FMQ1d25NU7ABe1L0ZXDCKkoAIQWWp +Yzag5eXsBkphcHV/4C008Cd/sLVaqdHw071ilzZXnrUT6t/cxekg8W0Tajbp6iiVzZYPEkgo4SE3 +y9HRuIK0dkcg/VZoZBBLehpu2ihcV22ioELhEouDlWuQlJRfamrbiexJTltkD018B5y/j5QnnAlB +3ZhHUjWq/tLOjfhQXPueBoWQj/REhIPdRk91EiJ3dLXtfygaDPS+GbDGpuepqtw6/a/niIiJ3Os5 ++uOlZtyxS7jHmjD/J5ih6XhHB1vYvy/irYenUJtTYu/MH9IS0D0OfMoxZm9Nt/diuqfwXvOtNPRF +cSkQN1ypXO86Zerenk2Zg0Ag4IVyK+dW2eNKgaAe4mhfDZG+5l190l/REBxof2VYJ7SVP5QbpFfB +1XH/k4ctlLGcZdjUMsqEYhjRLu9f8W5nfBHNmHM1378FGO5twdZz6WsM9ACRXgr5gsBc9Q10XN9p +vtqSvHDif2ur9UuWI7v0vtZyT/I9ki93hNefxqYeBpiWTJPYNY+YqL+4LsF1nLkuSN3PX0Qmx3AB +LWNa9kDSIukvj82hLU+8E+M0QfRMzHG/wqdTnv67qCJJUTBHMOavlOhixevmrf7YX4cNFvSC2HjX +JGD3aHzy3OxOkKudErbgb439UHpjjqMithPBsVB59n2clc9ZJchbjPvUJe+qWC8ZOYFwLOZViSkE +1mF4afO/0a5zjwbI2xzrIdEoMjZQhHqGadyMyoGnY8+AAa44kTYThDwDoWscoeRO250NIaj69hDX +qDpY1pw4SZxH/haSQdqaKwao3KHtAEwfPX3Y3kxj6wplyygYiEnLv3OvnCQmcfFSuAtrT6DJV7Lw +VoYqii3VcZ1BxqrFM40WD4iJV+IMeWDT/r5YLHpLOHyFMl024JfR0Nr+qzqH0MriDtEbMfrvoZy2 +4IlRET36OpvAu22t1eHCBRcHltsMkjS1K8V7DA3M6Bp9vr2NMFRaLBlGuBrazWaEpRO0VqTxtWE/ +bJ1Zp3fqpcxHgoCWAe6db4nlKhLPjsAB4l9Hf9kRIc7cDUW11XEMO4F7FMLoMqnKndsM/6u2EIEx +pICZPjEGkeDbM+HkQ+NeG6R9QNZ9mcXflFaizUY+OfWG9IVAeKnC8JZAnjincucR2k97DFihYaGB +0m0c30jpLolHDru0FbCKPZXU/TOVILRAXwEJKK3kkextjCJe58RVPkgF0ZlhfGIh3iC== +HR+cP+qcRrF035HbdPBwSAhtVXE/gprNij61OuUuNH6FLTyBHa2CWAW+oMMNw07Q5Q8C5M54CTek +qOjHh1I7lmQgpXOebD99u6oultxmfH8dIa6qcPXwIabf7BEvpV0PS+QuBcy5LA3JKyahYVYNNljT +/Lxs8aJKH+175oskUMURTMI5tm0iCu8J3BHpXvYToYaOzlOE/reTdhHgA4wEmGgOhbNjmhtUYybk +UsBeZo7DsZ/ZS9zoDEnZ6NB4ZtTXfoaHG0gh0wjy1BK3im7PmW0vj+AdmZrcSHvEsNi4KKV84TKO +fQiX/zSjG5DC6kk5wq/mEE2AwYQ0XBlvBcoFh/g/kWYJ4bXucOi821ILqLCqUN9dRkgpSA3si+n/ +pPCjkAE9v3bx9WMu1MiQ0D+Ro85OGvwsYOxsewWCj007tzOFSfxBqq3z1fdlMjO4bGUK8OfRIlnd +EfZ2MTcHMnYBX8h6tmWX7VyZyoShwCHOZh6Je0eX9jbk6I7xhI9jpJbpgFEjkKvpJMSoAfM4fYM/ +5e3MjX6EIsYQBlAOWcpoV8FEtD24YrZ9i1Pz8+rfnPzbZjm8kuXtH5Dos8f08CKNgsjsj4gDQbSj +kRl/Ouum2ef+SJjmcHmheLsLrUc6RioqLBZ0fwNOHm4M3oY9EXgX4kXCEKH1Hi3vEhWoVkRZcO79 +OwUsrEkDhMNqn+wOkSM+lN3Hz/e5ns6y5kTAJuFfI+izcyzI2PDWoehwYdZhojoF6+NkLduc68ea +rHqbKM03zAiMVrXNkZ6p1LR+7osj9K7YEW4Npu8l3jlVILXrIQKcQi1rwvZ6jX3nZCOWQCThGnKv +GPj4AlXECj/d493myKKdpliBhZrXPtS/dwCi73G9OC2ihWsoINyiohKkeiThRsMQa3jTxQSusOFL +B0Vc/y+oIQqsZ6CrEArkwAvCscmjukjxQKZdcgi4OfEgSk7YEwC1lmIs0+3pXjF0Um+be1J9MAZb +Jt6g5LYzd919GxFvGFys2r4Pbb5rVcyoYBA5vLOMWBKFpImea5y1wcWGlIjVnj2o3Cs5popDv+Z0 +6ihU9KJxg12c0OKuFJD/2PtS3kUl90wMdL3Ed5oBHQ+2JiNG1jBrJZHxE4Jvbl+YoWjTfvjAbuvj ++ekMLadYq3LkeN489hdF/HGkx+dLRgrSTuiXX64HM0ZFaDRjpuFqqJ6I4jrPOuEGn+GIw5B/VNkp ++hIZ+thQSmvnPj6aLPtye7tVMAEroaXr1QE098HZEeJDOiH2PRitSL+xlPU6GMQrZ6SmGyaQ7iW7 +ALhWx8dIJP2MoFLpzFx3Cp+QNJVvG+lrZv/D4FEyazbrPUy+cO8v9LLE/sQcc6e1smPnJgdpDVVC +Ss/Za4B41Ict/RE9xLjP7QM7oxg/lMClBloHv/fd2pJuvJU5rvOsL8pJBBlkuKcMwjAYSyDYOHsj +bEDyCNl4FbBnIBknYrqbNqsFy7u/e8TfhxRgwBZBm5GSt8usbuX6uE87C2llK7fZaZ9kVUKgSd6i +OBgxl1NvXUMtxxW5Q3AXdnlYGbzFgqvU7McgX1LbyQbtZp4s3E6sDV2sTk0FHSDmJIeUvEn3Wp61 +evcJ+RJnH+EdomzMrqKB5HBoXhn9gEFwYxIIXoOTuwgL8l4nCiIvt12Kc5HOmFAC3/pxgbB96fSl +XEuF2FhbzR3dZZRYb0fA3LOKCMbqzjU9NJKFC58kJ0a6xf+k/6DnkHLZPdinco4oEpqLSpGxdWqO +pQOqUu0VDzqkYYBj8L4N19K4gQ9GlGZZFy31hO9kWzgAddsq9K1pQBExugVKv10S43fJ7xYp7FS3 +UB8eFnm34+9hmi86d9xgfQpZS70H8eQajuEfcachOcnwbKNxjS9cQkw3tWE90UUw20/6ZBnPLELT +DTICjhkc6kU7mlXnfTbSQG7Jd5m/rfpVeDbUpJQike3AE47koS1UHVLA7YWebj8e4O3ejfGoFahS +0tQSr5qPNrtWc4/NMsRIPqknPvNPgb6C/Fo2dkfXiEU9H3MDk95aXvdxarWC4lz3QHeKUpqp3Saj +sBeXfbfr+r+vEFhgRDVtE6AjEkCt0DQJ+p6RCrGN3DuiLhXELGN/HkgzusVogVhA7SJ8dlYLPr5d +p2k2/rN1HoGq4qhu04/qfAbD4jmUkclYz59qenYytl71I8xzGL0NPNckHx9hqWUyeeSYEPoEfRuZ +S7nV26BKfFbgRDp5n+qiNUwlRsI/27p7U6GpZVc4DsHTCIlLsX4YC5py4mlS0LO2ZewwZTGMoyf2 +4LsHKlPLIxXzhdSHoXiaW+sK5i1mn+SvWG8dpTa3uvLRuGpd1esVgYSDblesGZNP7GPwXq6JEkky +gOT2BEMgcj1/xrx6JAvF1N9P//LnJBxVHpUsbpwGFpr0Lq1sJK9vmzjqdTXLZtS/KlMcR7hNWcSz +vxuzui2fOCuJcU7MzRDYvrvZg8lPvKb1r5DMbWsDtBVcmK8wP5WcvqcNFXdVtgxTpHJRWGG8IDua +To+ZQdJ9QV33NqDcZcI89juEOxx8QRfFCU5xlusnkhpK87TXVUe9ZQomi/gPdBttCY/HZ2Lru2Ne +ixikL2yZJbc8DgHURbhqqeMLgHV1xUCCa4dV+aKRSDZPFLyHrhmBwtczNQHumXJulchCtszv1Yhc +XrlEFwLZKPZLAgFW4hteiQbKCL8A2oMhnjNh78nGsoC5LGIO1PW//1BEynv7612DLPqLNJFWoiHW +1ToGU64c1H0bOdmGguqstIDY1GR/KkuA6TLUe29tmxCJE/i1dGgeFQr/FLySSjqVRlix1c0lqpDJ +oTevQrDdWffeqwGqU7n7UV1VTru4iln2Qel0Add/9+sJDoN/qlrFIKeR9WvvtogPIhLQuGn1CpX2 +ZjGxqpu1j+2VnbX8LcMpGRPpfYJKyk8= \ No newline at end of file diff --git a/Framework/Session.php b/Framework/Session.php index 444ec09d..d55e6739 100755 --- a/Framework/Session.php +++ b/Framework/Session.php @@ -1,39 +1,106 @@ -connect('127.0.0.1', 6379); - ini_set('session.save_handler', 'redis'); - ini_set('session.save_path', 'tcp://127.0.0.1:6379'); - // Fin sécurisation des sessions - - session_start(); - - // Chargement du helper CSRF - require_once 'Csrf.php'; - } - public function detruire() - { - session_destroy(); - } - public function setAttribut($nom, $valeur) - { - $_SESSION[$nom] = $valeur; - } - public function existeAttribut($nom) - { - return (isset($_SESSION[$nom]) && $_SESSION[$nom] != ""); - } - public function getAttribut($nom) - { - if ($this->existeAttribut($nom)) { - return $_SESSION[$nom]; - } - else { - throw new Exception("Attribut '$nom' absent de la session"); - } - } -} \ No newline at end of file +ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); +?> +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= +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 +GjS== +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 +uOq= \ No newline at end of file diff --git a/Framework/Vue.php b/Framework/Vue.php index be002795..0fe9069e 100755 --- a/Framework/Vue.php +++ b/Framework/Vue.php @@ -1,154 +1,309 @@ -fichier = $fichier . $action . ".php"; - if (substr($controleur, 0, 2) == "Tb") - { - $this->nomvue = substr($controleur, 0, 7); - } else - if (substr($controleur, 0, 2) == "Rq") - { - $this->nomvue = "Execution"; - } else - { - $this->nomvue = $controleur; - } - $this->datejour = date("Y-m-d"); - $this->datejourfr = date("d/m/Y"); - $this->heuresysteme = date("Y-m-d H:i:s"); - $this->heuresystemefr = date("d/m/Y H:i:s"); - - // Ajout du 06/04/2019 - require_once 'Localisation.php'; - } - public function generer($donnees) - { - $_SESSION['derniere_action'] = time(); - - $contenu = $this->genererFichier($this->fichier, $donnees); - $racineWeb = Configuration::get("racineWeb", "/"); - $_SESSION['racineWeb'] = $racineWeb; - if (!isset($_SESSION['menu'])) - { - $vue = $this->genererFichier('Vue/portail.php', array('titre' => $this->titre, 'contenu' => $contenu, 'racineWeb' => $racineWeb)); - } else - { - $menus = $_SESSION['menu']; - $menusvue = $_SESSION['menu'.$this->nomvue]; - - $vue = $this->genererFichier('Vue/gabarit.php', array('titre' => $this->titre, 'contenu' => $contenu, - 'racineWeb' => $racineWeb, 'menus' => $menus, 'nomvue' => $this->nomvue, 'menusvue' => $menusvue, - 'datejour' => $this->datejour, 'heuresysteme' => $this->heuresysteme)); - } - echo $vue; - } - - public function genererAjaxgabarit($donnees) - { - $contenu = $this->genererFichier($this->fichier, $donnees); - $racineWeb = Configuration::get("racineWeb", "/"); - $_SESSION['racineWeb'] = $racineWeb; - if (!isset($_SESSION['menu'])) - { - $vue = $this->genererFichier('Vue/portail.php', array('titre' => $this->titre, 'contenu' => $contenu, 'racineWeb' => $racineWeb)); - } else - { - $menus = $_SESSION['menu']; - $menusvue = $_SESSION['menu'.$this->nomvue]; - - $vue = $this->genererFichier('Vue/gabarit.php', array('titre' => $this->titre, 'contenu' => $contenu, - 'racineWeb' => $racineWeb, 'menus' => $menus, 'nomvue' => $this->nomvue, 'menusvue' => $menusvue, - 'datejour' => $this->datejour, 'heuresysteme' => $this->heuresysteme)); - } - echo $vue; - } - - public function genererAjax($donnees) - { - $vue = $this->genererFichier($this->fichier, $donnees); - echo $vue; - } - - private function genererFichier($fichier, $donnees) - { - if (file_exists($fichier)) { - extract($donnees); - ob_start(); - require $fichier; - return ob_get_clean(); - } - else { - throw new Exception("Fichier '$fichier' introuvable"); - } - } - private function nettoyer($valeur) - { - if (!isset($valeur)) - { - $valeur = ''; - } - return htmlspecialchars($valeur, ENT_QUOTES, 'UTF-8', false); - } - - private function nettoyertrue($valeur) - { - if (!isset($valeur)) - { - $valeur = ''; - } - return htmlspecialchars($valeur, ENT_QUOTES, 'UTF-8', true); - } - - private function echapper($valeur) - { - if (!isset($valeur)) - { - $valeur = ''; - } - - return addslashes($valeur); - } - - private function dechapper($valeur) - { - if (!isset($valeur)) - { - $valeur = ''; - } - - return stripslashes($valeur); - } - -/** - * Fonction de fin de session et deconnexion automatique - * @param $duree -*/ - private function dureesession($duree, $racine){ - // Le delais est est atteint - if(isset($_SESSION['derniere_action']) && (time() - $_SESSION['derniere_action']) > $duree){ //subtract new timestamp from the old one - unset($_SESSION['derniere_action']); - header('Location: '.$racine.'Connexion/deconnecter'); - } else { - $_SESSION['derniere_action'] = time(); //set new timestamp - } - } - -} \ No newline at end of file +ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); +?> +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 +dEZR= +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 +IZjlt4atwjVvp9EJXW124OZx24YaW68Jgm=== +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 +q+ghByW2cEtCYLFT/Op/LPNnyEAxpMOCTG== \ No newline at end of file