problem de "

Mammouth du PHP | 19672 Messages

22 août 2005, 17:08

je capte mal: je croyais que les balckslashes étaient déjà présents dans le texte d'origine ... :-k

ALors dans ce cas:
  1. addslashes(); Pour échapper les guillements
  2. str_replace(); pour protérer les guillements et les backslashes
  3. addslashes(); Pour protéger tout ça
En fin de compte à la sortie, tu devrais bien avoir \"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

22 août 2005, 17:20

en appliquant ceci :
$titre = addslashes($_POST['titre']);
	$titre = str_replace("\"","\\\"", $titre); 
	$titre = addslashes($titre);
	echo $titre;
me renvoie ceci \\\\\"

mais pourtant, quand je vais verifier la valeur ds la bdd, c'est \\"
pourtant je ne fais aucune opération sur $titre entre le echo $titre et la requete d'insertion..
et donc en sortie brute j'ai \\" et donc \ qui s'affiche ds l'input.

Mammouth du PHP | 19672 Messages

22 août 2005, 17:25

On est mal barrés je sens.

Bon, donne moi un exemple de texte (court merci) de ce que tu voudrais insérer et récupérer lors de l'affichage.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

22 août 2005, 17:27

Mathias "Baldours" Denis

(n'importe quoi comprenant des " et/ou des ' de toute façon)

Mammouth du PHP | 19672 Messages

22 août 2005, 17:35

Bon, le problème va se poser si ces valeurs se retouvent dans les valeurs d'arrtibuts de balises html. en contenu, ça ne devrait pas poser de difficultés et un addslashes tout simplement devrait suffire. Si tu dois avoir ce genre de valeur en attribut de balise html, tu as un problème si ces valeurs sont elles-même encadrées de guillemets. Dans ce cas, je suggère donc de remplacer dans les chaines^les guillemets par des apostrophes avec un truc comme :
$var = str_replace("\"", "'", $var);
Ensuite, un traitement avant insertion:
$var = (!get_magic_quotes_gpc()) ? addslashes($var) : $var;
Lors de la récupération, même chose, si les magic_quotes sont désactivées, stripslashes().
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

22 août 2005, 17:38

d'accord, donc c'est bien ce que je pensais.

Conclusion : Suivant le caractere que je vais utiliser a l'ouverture de mon attribut HTML (value=".." ou value='..'), il faudra que je condamne l'utilisation d'un caractere ( " si j'utilise ', et ' si j'utilise " ). C'est bien ça ?

Mammouth du PHP | 19672 Messages

22 août 2005, 17:39

exactement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

22 août 2005, 17:40

ok merci :)