8795 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'utilise la fonction magic quote, pour éviter d'avoir des antislashs dans ma base de données, lorsque je créé des options dans mes thèmes wordpress.
Voici la fonction :
//----------------------------- WORDPRESS FIX BACKSLASHES ---------------------------------------// 

if ( get_magic_quotes_gpc() ) {
    $_POST      = array_map( 'stripslashes_deep', $_POST );
    $_GET       = array_map( 'stripslashes_deep', $_GET );
    $_COOKIE    = array_map( 'stripslashes_deep', $_COOKIE );
    $_REQUEST   = array_map( 'stripslashes_deep', $_REQUEST );
}

Cette fonction à toujours marché, jusqu'à aujourd'hui.
J'avais l'habitude d'avoir des sites sur des serveurs mutualisés, hors mon dernier est hébergé chez une société, ce doit être un serveur dédié.

La fonction ci-dessus, ne marche plus. Est ce un problème de réglage du serveur, une nouvelle version php ? Sans cette fonction qui marche je suis foutu, j'ai des antislashes de partout, ca fou un peu le bordel dans mon code Smiley cligne

Avez vous une solution ?
Merci par avance
Modifié par dreadstock (14 Jun 2012 - 17:09)
Je dirais que mis à par le fait que c'est pas une fonction, il en manque un bout... la fonction "stripslashes_deep" n'apparait pas dans ton code.
C'est à dire ?
Ce que je ne comprends pas c'est que ca a toujours fonctionné, et que le je suis sur un dédié et ca fonctionne plus. Bizarre
C'est à dire que ton code appelle une fonction nommée "stripslashes_deep" mais que cette fonction n'est pas définie dans ton code. Si ça à toujours fonctionné ainsi c'est que tu n'est jamais tombé sur un hébergement qui avait Magic Quotes activé.

Tiens voilà un code qui fait la même chose mais en version complète :


if (get_magic_quotes_gpc()) {
  $kill_harry_potter = function(&$v, $k) { $v = stripslashes($v); };
  array_walk_recursive($_GET, $kill_harry_potter);
  array_walk_recursive($_POST, $kill_harry_potter);
  array_walk_recursive($_COOKIE, $kill_harry_potter);
  array_walk_recursive($_REQUEST, $kill_harry_potter);
}

Modifié par jb_gfx (14 Jun 2012 - 17:23)
jb_gfx a écrit :
C'est à dire que ton code appelle une fonction nommée "stripslashes_deep" mais que cette fonction n'est pas définie dans ton code. Si ça à toujours fonctionné ainsi c'est que tu n'est jamais tombé sur un hébergement qui avait Magic Quotes activé.

Tiens voilà un code qui fait la même chose mais en version complète :


if (get_magic_quotes_gpc()) {
  $kill_harry_potter = function(&$v, $k) { $v = stripslashes($v); };
  array_walk_recursive($_GET, $kill_harry_potter);
  array_walk_recursive($_POST, $kill_harry_potter);
  array_walk_recursive($_COOKIE, $kill_harry_potter);
  array_walk_recursive($_REQUEST, $kill_harry_potter);
}


Ok je comprends mieux ce que tu me dis là.
Concrètement, comment dois je faire pour éviter ce problème ? Comment dois je définir cette fonction dans mon code ?

C'est d'ailleurs bizarre, qu'ovh dans ces mutu, n'avait pas activié auparavant cette fonction ?
Merci pour ton aide
Ben en faite, j'ai pas accès à ce serveur (d'ailleurs, je sais même pas si la société passe par ovh). J'ai essayé de la rajouter sur le htaccess à la racine de mes dossiers wordpress, mais rien ne se passe. ca n'a rien à voir en faite ?

Il faut alors que je trouve la solution au niveau du code.