Màj checkParam pour aurélien

This commit is contained in:
xdrm-brackets 2015-11-18 09:48:08 +01:00
parent ad091e8f9a
commit f0222656ab
1 changed files with 23 additions and 68 deletions

View File

@ -129,76 +129,31 @@
* @return toutOK<Boolean> 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 '<string>':
return $checker && is_string($variable);
break;
case '<int>':
return $checker && is_int($variable);
break;
case '<numeric>':
return $checker && is_numeric($variable);
break;
case '<array>':
return $checker && is_array($variable);
break;
case '<boolean>':
return $checker && is_bool($variable);
break;
}
return $checker;
}