Page 1 sur 1

Guillemets et formulaire

Publié : 07 juin 2006, 16:46
par Lilive
Bonjour,
Je rencontre quelques soucis avec mes guillemets dans mes formulaires. Je gère plusieurs sites hébergés chez Free et quand je récupère mes données par POST, s'il y a une guillemet simple ou double, selon le site :
- soit ça ajoute automatiquement des \ devant,
- soit ça ne récupère que la donnée jusqu'à la guillemet...
Je sais que je peux rétablir la chose avec stripslashes ou addslashes mais je voulais savoir s'il y avait une "solution idéale universelle". :wink:

Dans la récupération du formulaire, si les ' et les " ne sont pas échappés, que faire ?
exemple :
$_POST["champ1"] -> récupération des guillemets simples mais pas doubles
$_POST['champ1'] -> récupération des guillemets doubles mais pas simples
Puis-je récupérer les deux sans échappement ?

Déjà pourquoi la protection des données de formulaire n'est pas activée sur TOUS les sites de Free ? Puis-je moi-même contrôler ce paramètre depuis mon script ? Autrement dit contrôler l'activation des échappements lors de l'envoi du formulaire.

J'aimerai éviter qu'au final, dans la base sql, les données se retrouvent avec plein de \ partout... (voire des doubles \\ si le formulaire subit des rééditions).

Merci pour votre aide.

Publié : 07 juin 2006, 17:52
par Asumbaa
Salut,

Tu peux gérer ça en testant la configuration du serveur par get-magic-quotes-gpc.
Si c'est activé, tu fais rien, si ça ne l'est pas tu addslashes avant d'insérer en base et tu stripslashes avant d'afficher ce qui vient de la base.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4

Publié : 07 juin 2006, 18:53
par Lilive
Merci.
c'est le même paramètre qui gère lors de l'envoi du formulaire récupéré ensuite en POST que celui qui "mouline" avant l'insertion dans la base de donnée sql ?

Re: Guillemets et formulaire

Publié : 08 juin 2006, 14:48
par Asumbaa
Salut,

C'est ça qui me parait bizarre dans ton premier post :
Lilive a écrit :$_POST["champ1"] -> récupération des guillemets simples mais pas doubles
$_POST['champ1'] -> récupération des guillemets doubles mais pas simples
Normalement y'a aucun souci à ce moment là. C'est seulement au moment de l'insertion en base que tu dois échapper les guillemets simples ou doubles.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4

Publié : 08 juin 2006, 22:51
par Do-IT

Code : Tout sélectionner

$champ1= isset($_POST['champ1'])? trim (strip_tags (stripslashes( $_POST['champ1]))):NULL;
J'utilise ça pour récupérer les données de mes formulaires.
En plus le isset permet de vérifier si le champ a été rempli, ça évite une notification d'erreur php (ne pas confondre avec message d'erreur)

Attention ça c'est juste pour récupérer les données, ensuite il faudra encore vérifier si le contenu correspond à ce que tu attends.

Publié : 22 juin 2006, 14:17
par Lilive
Merci pour votre aide ! :wink:
Je pense que j'ai maintenant ce qu'il faut pour ne pas avoir d'ennuis.