From f0222656ab178a2a6936bb940fbd1cb6714e0c9c Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Wed, 18 Nov 2015 09:48:08 +0100 Subject: [PATCH] =?UTF-8?q?M=C3=A0j=20checkParam=20pour=20aur=C3=A9lien?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/security.php | 91 +++++++++++--------------------------------- 1 file changed, 23 insertions(+), 68 deletions(-) diff --git a/manager/security.php b/manager/security.php index 56cfe2a..b6a348d 100755 --- a/manager/security.php +++ b/manager/security.php @@ -129,76 +129,31 @@ * @return toutOK VRAI si variables bonnes / FAUX sinon * */ - function checkParam($tabVar, $tabType, $tabForm) { - // FORMAT DE $tabVar - // - // $tabVar = array( - // $stringVar, // chaine de caractères - // $integerVar, // entier - // $numericVar, // nombre (sous forme d'entier ou de chaine) - // $arrayVar // tableau - // ); + function checkParam($variable, $type){ + $checker = isset($variable); - // FORMAT DE $tabType - // - // $tabType = array( - // 'string', // chaine de caractères - // 'int', // entier - // 'numeric', // nombre (sous forme d'entier ou de chaine) - // 'array' // tableau - // ); - - - // FORMAT DE $tabForm - // - // $tabType = array( - // '/^[a-z0-9]{1,5}$/i', // chaine de caractères - // '/^[0-9]+$/', // entier - // '/^[0-9]+$/', // nombre (sous forme d'entier ou de chaine) - // '??????' // tableau - // ); - - - - - - /* [1] Vérification de l'intégrité des tableaux - =============================================================================*/ - $areArrays = is_array($tabVar) && is_array($tabForm); // si ce sont bien des tabeaux - $areNEmpty = $areArrays && count($tabVar) > 0; // si ils ne sont pas vides - $haveEqLen = $areNEmpty && count($tabVar) == count($tabForm); // si ils ont la même taille - - if( !$haveEqLen ) // si toutes les conditions ne sont pas vérifiées - return false; // on retourne faux, car ne pourra pas être vrai - - - /* [2] Pour chaque variable on vérifie les données - =============================================================================*/ - $checker = false; // on définit le checker à VRAI - - // Vérification des types - - // pour chaque variable - for($i = 0 ; $i < count($tabVar) ; $i++) { - - switch($tabType[$i]) { - - case 'string': if( is_string($tabForm[$i]) ) - $checker = is_string($tabVar[$i]) && preg_match($tabForm[$i], (String) $tabVar[$i]); - break; - case 'int': if( is_string($tabForm[$i]) ) - $checker = is_int($tabVar[$i]) && preg_match($tabForm[$i], (String) $tabVar[$i]); - break; - case 'numeric': if( is_string($tabForm[$i]) ) - $checker = is_numeric($tabVar[$i]) && preg_match($tabForm[$i], (String) $tabVar[$i]); - break; - case 'array': if( is_numeric($tabForm[$i]) ) - $checker = is_array($tabVar[i]) && count($tabVar[$i]) > 0; - break; - } + // traitement en fonction du type + switch($type){ + case 'utilisateur.identifiant': + return $checker && is_string($variable) && preg_match('/^[\w -]{3,50}$/i', $variable); + break; + case '': + return $checker && is_string($variable); + break; + case '': + return $checker && is_int($variable); + break; + case '': + return $checker && is_numeric($variable); + break; + case '': + return $checker && is_array($variable); + break; + case '': + return $checker && is_bool($variable); + break; } - - return $checker; + }