Bonjour,

Aujourd'hui une petite fonction de PHP toute simple auquel on ne pense pas forcément :
Lorsque l'on récupère des variables via les méthodes POST, GET, SESSION et autres il vaut mieux que vos variables existent ou vous risquez certaines erreurs. Pour vous assurer d'avoir des variables correctes le mieux est de tester leur existence et, au besoin, de les initialiser.
La fonction ici présente est courte, mais sert à faire les deux opérations en une seule fois.

<?php
function getVar($lib, $def="", $method="request"){
    $method = strtoupper($method);    // mise en majuscule de la méthode
    // on recherche la valeur exacte dans le tableau correspondant
    eval('$resu = isset($_'.$method.'[\''.$lib.'\']) ? $_'.$method.'[\''.$lib.'\'] : $def;');
    return $resu;    // et on revoit le résultat
}
?>


Juste pour info : eval sert à exécuter une chaine de caractères comme une ligne de code normale. Les deux lignes suivantes font la même chose :

<?php
    eval('$resu = isset($_GET[\'maVar\']) ? $_GET[\'maVar\'] : $def;');
    $resu = isset($_GET['maVar']) ? $_GET['maVar'] : $def;
?>


Utilistation :
Url utilisée = http://localhost/SCRIPTS/get_var.php?maVar1=123&maVar2=456

<?php
// recherche de maVar1 par GET, défaut : "789"
echo "recherche de maVar1 par GET : '" . getVar("maVar1", "789", "get") . "'<br />";

// recherche de maVar2 par REQUEST, défaut : "789"
echo "recherche de maVar2 par REQUEST : '" . getVar("maVar2", "789") . "'<br />";

// recherche de maVar3 par REQUEST (n'existe pas), défaut : 789
echo "recherche de maVar3 par REQUEST : '" . getVar("maVar3", "789") . "'<br />";

// recherche de maVar4 par REQUEST (n'existe pas), défaut : chaine vide
echo "recherche de maVar4 par REQUEST : '" . getVar("maVar4") . "'<br />";

// recherche de PHP_SELF par SERVER, défaut : chaine vide
echo "recherche de PHP_SELF par SERVER : '" . getVar("PHP_SELF", "", "server") . "'<br />";
?>


Résultat :

recherche de maVar1 par GET : '123'
recherche de maVar2 par REQUEST : '456'
recherche de maVar3 par REQUEST : '789'
recherche de maVar4 par REQUEST : ''
recherche de PHP_SELF par SERVER : '/SCRIPTS/get_var.php'


Sur de petits sites où il y a peu de variables elle peut être inutile, en revanche quand vous manipulez de grandes quantités de données je vous certifie que vous serez content de l'avoir.