function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
$var = Verif_magicquotes($_POST['var']);// supprime les slash si magic_quotes activé
$var = mysql_real_escape_string($var);// protection de la variable pour insertion en bdd
Oui pourquoi pas, ce serait une bonne précaution. Cela dit d'après ce que j'ai compris cette fonction retournera toujours false avec php 5.4 et sans message d'erreur (pour compatibilité avec du code créé avec des versions antérieures).Perso j'ajouterai un test sur l'existant des fonctions pour éviter les déboires en cas de migration sur php 5.4
http://php.net/manual/fr/function.function-exists.php
@+
NON ! C'EST PAS BON !!Merci beaucoup!
Je revenais justement pour poster une fonction de ce type qu'on m'a suggéré d'utiliser:
function gpc_addslashes($str) { if (get_magic_quotes_gpc()==1) { return $str; } else { return mysql_real_escape_string($str); } }
Code : Tout sélectionner
php_value magic_quotes 0
php_flag magic_quotes off
php_value magic_quotes_gpc 0
php_flag magic_quotes_gpc off
Bah je croyais avoir été assez clair dans mon explication.Bon, je ne comprends pas bien pourquoi la fonction ci-dessus n'est pas une bonne méthode mais j'ai résolu la question d'une manière plus simple. J'ai réussi à désactiver les magic_quotes en insérant ce code dans le fichier .htaccess
Oui c'est la syntaxe habituelle classique. Cela dit pour des serveurs mutualisés cela peut varier suivant les hébergeurs, par exemple chez ovh il faudrait écrire "SetEnv MAGIC_QUOTES 0". Pour dire qu'il vaut mieux se renseigner auprès de son hébergeur si ces lignes ne fonctionnaient pas (et parfois le .htaccess n'est même pas pris en compte).Code : Tout sélectionner
php_value magic_quotes 0 php_flag magic_quotes off php_value magic_quotes_gpc 0 php_flag magic_quotes_gpc off