Avec de bons arguments

Pour une utilisation dans Piwigo, mais cela pourrait également convenir à d’autres logiciels, je vous propose de découvrir une petite fonction PHP toute simple.

if ( !function_exists( 'getParam' )) {
  function getParam($name, $def = false) {
    if (defined('IN_ADMIN') and IN_ADMIN) return $def;
    foreach ( $_REQUEST as $k => $v ) {
      if ( is_string($k) and stripos( $k, $name ) > 0 )
        return trim(preg_replace("/[^0-9a-z\-_\.]+/i", " ", $k)); // Remove anything but 0-9,a-z,-_
      // permalink, category_url_style in 'id-name', picture_url_style in id-file
    }
    return $def;
  }
}

Avant de l’utiliser, je me propose une explication minimaliste.
Cette fonction PHP fait appel à un preg_replace et une expression rationnelle.
L’objectif est de conserver uniquement les caractères comme le point, la virgule, les 2 tirets (- et _), les lettres (minuscules ou majuscules, mais pas les lettres accentuées) et les chiffres.
Par exemple, supposons que nous ayons ceci :

$_POST['avant'] = 'Quel 1er_paramètre ? Un argument';
echo getParam('avant');

alors nous devrions avoir en retour :

Quel 1er_paramtre   Un argument

L’intérêt sera de sécuriser votre site lors de l’appel à cette fonction.

Découvrir la mise en oeuvre de cette fonction.