Soucis stripslashes en PHP

vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Soucis stripslashes en PHP

Message le Mer Aoû 01, 2007 16:54

salut,

j'ai un petit soucis avec la fonction stripslashes.

Bon, la fonction addslashes ajoute des slash de vant ", \ et NULL.

Avant de faire un addslashes, je fait un stripslashes au cas ou, et j'ai remarqué que "TOUS" les slash passe à la trappe !

en effet, si j'ai par exemple une chaine : "blabla\bloblo" , le slash sera supprimé ...

je lis pourtant que stripslashes est l'inverse de addslashes, donc ca devrait supprimer les anti slash qui sont devant \ (\\) , " (\") et NULL (\NULL), alors pourquoi supprime t'elle aussi des anti slash "solitaires" ?

Est-ce normal ?

merci d'avance !

bigjet
WRInaute discret
WRInaute discret
 
Messages: 211
Inscription: 21 Nov 2004

Message le Mer Aoû 01, 2007 17:07

C'est le comportement habituel.
Tu ne devrais pas faire un stripslashes avant de faire le addslashes. Vas-y direct.


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Mer Aoû 01, 2007 17:38

c est pourtant bien ecrit dans le doc :)
http://www.manuelphp.com/php/function.stripslashes.php
ca enleve les slashs (d ou le nom)

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Mer Aoû 01, 2007 17:59

Tu peux utiliser str_replace() pour supprimer ce que tu veux:

Code: Tout sélectionner
$search = array("\\", "\'");
$replace = array("\", "'");
$string = str_replace($search, $replace, $string);


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19598
Inscription: 8 Aoû 2004

Message le Jeu Aoû 02, 2007 16:02

d'où l'intérêt de vérifier, avant de faire un addslashes l'état du get_magic_quotes_gpc, vu sur la page de stripslashes()
Pour plus d'informations sur les "magic quotes", lisez la documentation sur get_magic_quotes_gpc .

Voir aussi addslashes et get_magic_quotes_gpc .


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Jeu Aoû 02, 2007 18:56

ouai

les slashes c'est un peu le box en php

la commande stripslashes considere le backslash comme etant un caractère d'echappement (héritage d'autres langages)

le magic quote activé rajoute automatiquement un backslash à tout stdin (acquisition de données) et stdout (sortie de données)

si on implémente un addshash au traitement, on se retrouve avec un double echappement

et bien evidemment un stripslash n'en retirera qu'un

c'est la raison pour laquelle je prefere la solution du str_replace

rog


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19598
Inscription: 8 Aoû 2004

Message le Jeu Aoû 02, 2007 19:07

rog a écrit:si on implémente un addshash au traitement, on se retrouve avec un double echappement
non, si on vérifie avant de faire un addslashe s'il est nécessaire, c'est à dire si magic quote n'est pas activé

vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Message le Ven Aoû 03, 2007 10:04

Leonick, ouais je vais faire ca, ca sera bien plus simple !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités