OVH Cloud OVH Cloud

Probleme de slash

18 réponses
Avatar
Yannick
Bonjour

J'ai un problème sur un site.
J'ai PHP 4.0.6

Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.

Exemple :
à l'internationnal se transforme en l\'international et ceci
de manière aléatoire. En rechargeant la page, soit le slash apparait
soit il disparait ........

Est-ce que quelqu'un a déjà rencontré le problème ou si quelqu'un
a une idée. Merci d'avance pour vos réponses.

Yannick

10 réponses

1 2
Avatar
CrazyCat
Yannick wrote:
Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.


si $texte est ta variable extraite de ta base de données, utilise
stripslashes($texte) pour l'affichage
--
Tout sur les eggdrops en français...
http://www.c-p-f.org
mailing-list :

Avatar
Julian
Yannick wrote:
Bonjour

J'ai un problème sur un site.
J'ai PHP 4.0.6

Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.

Exemple :
à l'internationnal se transforme en l'international et ceci
de manière aléatoire. En rechargeant la page, soit le slash apparait
soit il disparait ........

Est-ce que quelqu'un a déjà rencontré le problème ou si quelqu'un
a une idée. Merci d'avance pour vos réponses.

Yannick


au moment de l'affichage, utilise stripslashes() ça devrait résoudre ton
problème. cela dit, il vaut mieux pour toi que les quotes soient
précédées d'un backslash, autrement tes données risquent d'être
amputées lorsque tu voudras les stocker dans une bdd.
donc avant tout stockage de string : addslashes()

Julian

Avatar
David
"Yannick" a écrit dans le message de
news: bum97d$pmj$
Bonjour

J'ai un problème sur un site.
J'ai PHP 4.0.6

Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.

Exemple :
à l'internationnal se transforme en l'international et ceci
de manière aléatoire. En rechargeant la page, soit le slash apparait
soit il disparait ........

Est-ce que quelqu'un a déjà rencontré le problème ou si quelqu'un
a une idée. Merci d'avance pour vos réponses.

Yannick


Ce n'est pas un problème mais une fonctionnalité de PHP.
L'option magicquotes ajoute un à toutes les apostrophes des chaines issues
des POST.
Ce slash est indispensable pour créer une requête SQL (MySQL en tout cas).
Dave

Avatar
Jedi121
Yannick a écrit le 21/01/2004 :
Bonjour
Bonsoir,


[...]

Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.

Exemple :
à l'internationnal se transforme en l'international et ceci
de manière aléatoire. En rechargeant la page, soit le slash apparait
soit il disparait ........

Est-ce que quelqu'un a déjà rencontré le problème ou si quelqu'un
a une idée. Merci d'avance pour vos réponses.


Voir la doc :
get_magic_quotes();
Sinon addslashes() et stripslashes().

PS : je ne crois pas que le hasard est grand chose à faire avec ça ;)

Avatar
Yannick
Bonjour

et merci de votre réponse.

Je suis d'accord, mais là, les données sont récupérées d'une base de
données. Et les données présentes dans la base contienne une apostrophe,
mais pas de slashs. Et le slash apparait de manière "aléatoire" devant les
apostrophes
au moment de l'affichage.


"David" a écrit dans le message de
news: buo3dn$pq5$
"Yannick" a écrit dans le message de
news: bum97d$pmj$
Bonjour

J'ai un problème sur un site.
J'ai PHP 4.0.6

Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.

Exemple :
à l'internationnal se transforme en l'international et ceci
de manière aléatoire. En rechargeant la page, soit le slash apparait
soit il disparait ........

Est-ce que quelqu'un a déjà rencontré le problème ou si quelqu'un
a une idée. Merci d'avance pour vos réponses.

Yannick


Ce n'est pas un problème mais une fonctionnalité de PHP.
L'option magicquotes ajoute un à toutes les apostrophes des chaines
issues

des POST.
Ce slash est indispensable pour créer une requête SQL (MySQL en tout cas).
Dave



Avatar
Yannick
Bonjour

et merci de votre réponse.

Il y'a bien un problème de "hasard", vu que le problème
n'apparait pas tout le temps.
Il n'y a pas de slash dans mon texte qui est présent dans ma
base.

Si je ré-actualise ma page, (les données dans la base sont
pas changés), il se peut que des slashs apparaissent devant les
apostrophes. Et ceci de façon aléatoire.


"Jedi121" a écrit dans le message de news:

Yannick a écrit le 21/01/2004 :
Bonjour
Bonsoir,


[...]

Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant. Le truc, c'est que c'est de manière aléatoire.
Mon texte est pris d'une base de données et dans la base, le
texte est comme il faut, avec l'apostrophe et sans slash.

Exemple :
à l'internationnal se transforme en l'international et ceci
de manière aléatoire. En rechargeant la page, soit le slash apparait
soit il disparait ........

Est-ce que quelqu'un a déjà rencontré le problème ou si quelqu'un
a une idée. Merci d'avance pour vos réponses.


Voir la doc :
get_magic_quotes();
Sinon addslashes() et stripslashes().

PS : je ne crois pas que le hasard est grand chose à faire avec ça ;)



Avatar
loufoque
Et lorsque j'affiche un texte avec une ', j'ai un slash qui
se met devant.


C'est à cause d'un truc idiot de PHP, les magic_quotes.
Desactive magic_quotes_gpc ou alors précède tous tes scripts de

function strip_array($array) {
foreach($array as $key=>$data) {
$array[$key] = stripslashes($data);
}
}
strip_array($_GET);
strip_array($_POST);
strip_array($_COOKIE);

Desactive aussi magic_quotes_runtime.
Sinon, fais un stripslashes() sur les données que tu viens de générer
(requête SQL etc.)

Avatar
Thibaut Allender

C'est à cause d'un truc idiot de PHP, les magic_quotes.
Desactive magic_quotes_gpc ou alors précède tous tes scripts de


pas si idiot que ca quand on sait qu'il est activé...

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
loufoque
Message d'origine de Thibaut Allender :


C'est à cause d'un truc idiot de PHP, les magic_quotes.
Desactive magic_quotes_gpc ou alors précède tous tes scripts de


pas si idiot que ca quand on sait qu'il est activé...



C'est un comportement totalement stupide de PHP qui a été créé pour
empêcher qu'il y ait des failles de sécurité dans les sites mal codés
faits pour fonctionner avec MySQL.
Il est totalement illogique de mettre des slashes comme ça pour déconner
au données GET, POST et Cookie. Surtout que d'autres bases de données
n'utilisent pas les slashes pour échapper les guillemets ou apostrophes.
Alors là on pourrait faire jouer magic_quotes_sybase... Enfin ces
options sont bien peu pratiques, mieux vaut utiliser une fonction
spécifique à sa base de données pour échapper ce qui est nécessaire.


Avatar
Thibaut Allender

C'est un comportement totalement stupide de PHP qui a été créé pour
empêcher qu'il y ait des failles de sécurité dans les sites mal codés
faits pour fonctionner avec MySQL.


pas si stupide que ca si on dénombre les sites mal codés qui utilisent
mysql :)

Il est totalement illogique de mettre des slashes comme ça pour déconner
au données GET, POST et Cookie. Surtout que d'autres bases de données
n'utilisent pas les slashes pour échapper les guillemets ou apostrophes.


l'utilise qui veut

Alors là on pourrait faire jouer magic_quotes_sybase... Enfin ces
options sont bien peu pratiques, mieux vaut utiliser une fonction
spécifique à sa base de données pour échapper ce qui est nécessaire.


ouais enfin on pourrait en discuter encore longtemps comme ca, comme
pour le register_globals...

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

1 2