le MEMO du WEB développeur
••• HTML •••  Liste des Mémos, astuces et bonnes pratiques

Problème de slash sur passage de paramètres dans formulaire

Dans un formulaire HTML, je saisis dans une balise une valeur contenant une apostrophe, disons :

<input type="text" name="etat"  value="l'ouragan est passé"  />

A la récupération du paramètre "etat" j'obtiens :  $_GET["etat"]= "l\\'ouragan est passé",  avec un backslash agaçant. Que faire ?

  1. Soit j'utilise la fonction stripSlashes($_GET["etat"]) qui supprime les backslashes
  2. Soit je modifie le paramètre magic_quotes_gpc  de mon fichier php.ini de WAMP. Imposer la valeur de magic_quotes_gpc  à "off", empêchera l'ajout de backslashes au passage de paramètres par formulaire mais aussi dans les cookies.    Sous l'hébergeur PHPNux, il est possible de modifier ce paramètre directement dans votre espace client, sous 1&1, il faut créer un fichier php.ini à l'aide d'un bloc note contenant :
magic_quotes_gpc = off

  et de le placer dans les répertoires de votre site nécessitant cette fonctionnalité.

 Chez OVH il faut rajouter la ligne suivante dans le fichier .htacces

SetEnv MAGIC_QUOTES 0

source : http://guides.ovh.net/ConfigPhp

Les magic_quotes visent à protéger les formulaires des injections SQL, mais il est fortement recommendé d'utiliser plutôt la fonction mysql_real_escape_string() plus complète qui neutralise, en les échappant tous les caractères susceptibles d'être utilisés lors d'une injection SQL :

  • les guillemets simples ' ;    
  • les guillemets doubles " :    
  • les slashes / ;    
  • les caractères NULL ;    
  • les caractères suivants : \n, \r, \x00 et \x1a.

Avertissement :
mysql_real_escape_string() est dépréciée depuis PHP 5.5.0

source : http://www.phpfacile.com/creer_un_site_web_en_php/formulaire_1.php5

publié le 16/11/2012 par Memo Web
.htaccessFormulairesphp.ini
Commenter le Mémo :

Comment ajouter un favicon sur son site
Rafraîchir automatiquement une page
Mettre un lien vers la page d'accueil son site
Empêcher l'autocomplétion dans les formulaires
Ma méthode pour affecter un identifiant entier à mes éléments HTML
Trouver le chemin canonique absolu d'un répertoire
Padding et margin en hauteur ne fonctionnement pas sur éléments inline
Comment ne pas interpréter une commande HTML à l'affichage
Revenir à la page précédente du navigateur
Internet Explorer : Commentaire conditionnel
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos