Magic quotes

equinette Messages postés 11 Statut Membre -  
R4f Messages postés 441 Statut Membre -
Bonjour,
Je gère une quarantaie de sites, pour la plupart réalisés il y a quelques annés déjà.
Et voilà que notre provider a changé les valeurs pour magic quotes... Donc évidement mon code ne contenant pas de addslashes dans les formulaires, ni de strislashes.. puisque magic quotes gérait tout.
Bref, là c'est la galère, car je me retrouve avec des \' partout dans toutes mes pages dynamiques.
J'ai ajouté
php_value magic_quotes_gpc 1
php_value magic_quotes_runtime 1

dans un .htaccess à la racine du site, mais ca ne change rien. Faut-il vraiment que je modifie cahque page.. pour ajouter partout ou c'est nécessaire des stripslashes (parceque là, j'en ai pour des jours..) ou y a-t-il un moyen de retrouver cette fonction automatiquement par une modif de .htaccess ?
A voir également:

1 réponse

R4f Messages postés 441 Statut Membre 62
 
A priori, les hébergeurs n'autorisent pas leurs hébergés à modifier cette variable de configuration...

Mais tes scripts étant bien conçus, doivent tous avoir un require_once (ou include) commun, non ?
Genre
<?php
require_once('options.php');
# on alors
require_once('inc/config.php');

...


Parce que dans ce cas, tu peux faire ça (pompé sur https://ilia.ws/files/phptek2007_security.pdf et modifié) :
<?php
if (!get_magic_quotes_gpc()) { // is this thing off?
  function add_quotes(&$var) {
    if (is_array($var)) array_walk($var, 'add_quotes');
    else $var = addslashes($var);
  }
  // Handle GPC
  foreach (array('GET','POST','COOKIE') as $v)
    if (!empty(${"_".$v})) array_walk(${"_".$v}, 'add_quotes');

  if (!empty($_FILES))
     foreach ($_FILES as $k => $v)
       $_FILES[$k]['name'] = addslashes($v['name']);
}
?>


Si tu n'as pas un tel fichier, alors tu pourras placer le code ci-dessus dans un fichier clean_quotes.php et ajouter à tous les scripts PHP le ligne : <?php require_once('clean_quotes.php'); ?>

Raph
0