PRATIQUE PHP 
Gérer register_globals sur un hébergement partagé
 
S'il est impossible d'annuler register_globals à l'aide de ini_set(), on peut en supprimer les valeurs grâce à ini_get() et unset(). (15/11/2005)
  Forum

Réagissez dans les forums de JDN Développeurs

La prise en compte automatique des variables externes en tant que variables globales n'est plus effective depuis PHP 4.2.0, ce qui a l'époque a provoqué un mouvement de protestation tant cette fonctionnalité simplifiait la vie du développeur.

Cependant, elle facilitait également la création de failles de sécurité, donc les développeurs ont dû s'adapter.

Mais certains hébergements n'offrent toujours pas la version 4.2.0, laissant les développeurs se débrouiller avec la directive register_globals de php.ini.

Or, malheureusement, la plupart des hébergements mutualisés ne laissent pas le webmaster modifier leur fichier php.ini.

Voici donc une solution : par le biais de la fonction ini_get(), qui lit les valeurs de configuration, on retrouve les valeurs entrées en GET ou en POST en parcourant le tableau $_REQUEST :

<?php
if ( @ini_get('register_globals') ) {
  foreach ($_REQUEST as $clef => $valeur);
  unset($GLOBALS[$clefs]);
  }
?>

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page