From e5b45dd6c7ee9840b947ba66eede6817915650a2 Mon Sep 17 00:00:00 2001 From: Clecle Date: Wed, 11 Nov 2015 16:28:01 +0100 Subject: [PATCH 1/2] =?UTF-8?q?r=C3=A9=C3=A9criture=20CheckParam()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/security.php | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/manager/security.php b/manager/security.php index 1a9bbb4..ecda318 100755 --- a/manager/security.php +++ b/manager/security.php @@ -153,7 +153,7 @@ /* [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 && count($tabForm) > 0; // si ils ne sont pas vides + $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 @@ -162,30 +162,30 @@ /* [2] Pour chaque variable on vérifie les données =============================================================================*/ - $checker = true; // on définit le checker à VRAI + $checker = false; // on définit le checker à VRAI // Vérification des types // pour chaque variable - foreach ($tabVar as $type => $tabVal){ - foreach($tabVal as $variable) { // <--- Gestion des tableaux de valeurs ??? - $checker = ($type == gettype($variable)); - if($checker == false) - return (" variable : ".(String)$variable." non conforme, type attendu : ".(String)$type." type reçu :".gettype($variable)); - } - - } + for($i = 0;i < count($tabVar);i++) { - // Vérification des formats + switch($tabType[$i]) { - foreach($tabForm as $format => $tabVal) { - foreach ($tabVal as $variable) { // <--- Gestion des tableaux de valeurs ??? - $checker = preg_match($format,$variable); - if($checker == false) - return (" variable : ".$variable." non conforme, format attendu : ".(String)$format." format reçu :".(String)$variable); + 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; } } - + return $checker; } From 09711e6185f278fe64fd18c4db8c823ff7f31199 Mon Sep 17 00:00:00 2001 From: Clecle Date: Wed, 11 Nov 2015 17:41:10 +0100 Subject: [PATCH 2/2] Test checkParam --- manager/security.php | 14 +++++++------- test.php | 42 +++++++++++++++++++++++++++++------------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/manager/security.php b/manager/security.php index ecda318..969c90d 100755 --- a/manager/security.php +++ b/manager/security.php @@ -167,18 +167,18 @@ // Vérification des types // pour chaque variable - for($i = 0;i < count($tabVar);i++) { + 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]; + 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]; + 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]; + 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; diff --git a/test.php b/test.php index 112ac17..b3ae8b3 100755 --- a/test.php +++ b/test.php @@ -40,19 +40,35 @@ require_once __ROOT__.'/manager/security.php'; - - - - - -require_once __ROOT__.'/manager/database.php'; - -debug(); -var_dump( $_SESSION['droits'] ); - - - - + // test string + echo 'Test sur le type String'; + var_dump( true == checkParam(array('mrd1609a'), array('string'),array('/^[\w -]{3,50}$/i')) ); // bonnes valeurs + var_dump( false == checkParam(array(18), array('string'),array('/^[\w -]{3,50}$/i')) ); // mauvaise variable + var_dump( false == checkParam(array('mrd1609a'), array('int'),array('/^[\w -]{3,50}$/i')) ); // mauvais type + echo '
'; + + // test int + echo 'Test sur le type int'; + var_dump( true == checkParam(array(18), array('int'),array('/^[0-9]*$/')) ); // bonnes valeurs + var_dump( false == checkParam(array(18), array('string'),array('/^[0-9]*$/i')) ); // mauvaise variable + var_dump( false == checkParam(array('18'), array('int'),array('/^[\w -]{3,50}$/i')) ); // mauvais type + echo '
'; + + // test numeric + echo 'Test sur le type numeric'; + var_dump( false == checkParam(array('18'), array('numeric'),array('/^[\w -]{3,50}$/i')) ); // bonnes valeurs + var_dump( false == checkParam(array('18'), array('string'),array('/^[\w -]{3,50}$/i')) ); // mauvaise variable + var_dump( false == checkParam(array('18'), array('int'),array('/^[\w -]{3,50}$/i')) ); // mauvais type + echo '
'; + + // test array + echo 'Test sur le type array'; + var_dump( true == checkParam(array('mrd1609a','lbh1609'), array('string','string'),array('/^[\w -]{3,50}$/i','/^[\w -]{3,50}$/i')) ); // bonnes valeurs + var_dump( false == checkParam(array('mrd1609a','lbh1609'), array('int','int'),array('/^[\w -]{3,50}$/i')) ); // mauvaise variable + var_dump( false == checkParam(array('mrd1609a','lbh1609'), array('string','int'),array('/^[x]{3,50}$/i','/^[x]{3,50}$/i')) ); // mauvais regex + echo '
'; + +