OVH Cloud OVH Cloud

probleme de ' qui apparaissent bizarement

4 réponses
Avatar
Elicend_news
Salut
pour tout dire, le fait étrange se produit sur phpnuke, avec nsnyouraccount,
mais pas uniquement !

voila, lorsque j'ai des inscription, la plupart des champs remplis par les
membres se retrovuent enregistrés en BD avec un ' a la fin (visible en
´ dans la bd)
je remarque de plus que dans certain cas, lorsque j'enregistre une phrase
(en faq par exemple) contenant une apostrophe, elle est automatiquement
doublée !?

par contre d'autre champs ne sont pas impactés, le forum phpbb n'a pas ce
soucis.... est ce que ca peut etre un pb de config serveur ?

sinon pour colmater la breche, j'essaye de faire une requette qui
supprimerai ca dans la bd automatiquement par un lien, mais rien que pour
les dénombrer, je n'y arrive pas ! voici mon code :
//nb de ' dans les mails
$pb="´";
$nb_pb_sql = "SELECT * FROM ".$prefix."_users WHERE user_email LIKE
'%$pb%'";
$nb_pb_query = $db->sql_query($nb_pb_sql);
$nb_pb = $db->sql_numrows($nb_pb_query);

si je remplace &acute par un mot contenu, il est compté...

merci d'avance !
elicend.

--
Merci,
@ plus
Elicend
www.miniend.com [Le site francophone de référence du circuit routier]

4 réponses

Avatar
ftc
Salut
pour tout dire, le fait étrange se produit sur phpnuke, avec nsnyouraccount,
mais pas uniquement !

voila, lorsque j'ai des inscription, la plupart des champs remplis par les
membres se retrovuent enregistrés en BD avec un ' a la fin (visible en
´ dans la bd)


&acute n'est pas le ' mais le ` ( ce caractère sert à protéger certains
noms de variable dans les requêtes mysql ).
Il faudrait faire une recherche sur ce caractère dans le code source, il
doit être oublié quelque part dans une requête d'insertion au moment
d'un copier/coller peut être.

sinon pour colmater la breche, j'essaye de faire une requette qui
supprimerai ca dans la bd automatiquement par un lien, mais rien que pour
les dénombrer, je n'y arrive pas ! voici mon code :
//nb de ' dans les mails
$pb="´";
$nb_pb_sql = "SELECT * FROM ".$prefix."_users WHERE user_email LIKE
'%$pb%'";
$nb_pb_query = $db->sql_query($nb_pb_sql);
$nb_pb = $db->sql_numrows($nb_pb_query);

si je remplace &acute par un mot contenu, il est compté...


Plutôt
$nb_pb_sql = "SELECT * FROM ".$prefix."_users WHERE user_email LIKE
'%$pb'";

puisque la chaîne se trouve à la fin

Avatar
Patrick Mevzek
pour tout dire, le fait étrange se produit sur phpnuke, avec nsnyouraccount,
mais pas uniquement !

voila, lorsque j'ai des inscription, la plupart des champs remplis par les
membres se retrovuent enregistrés en BD avec un ' a la fin (visible en
´ dans la bd)
je remarque de plus que dans certain cas, lorsque j'enregistre une phrase
(en faq par exemple) contenant une apostrophe, elle est automatiquement
doublée !?


Vous êtes probablement tombé sur des gens qui n'ont rien compris aux
injections SQL et qui croient s'en sortir en bidouillant avec les
apostrophes (quelle horreur que de les coder en HTML dans la base !)
Manifestement leur bidouille, en plus de ne servir à rien pour régler le
problème initial de sécurité, ne fonctionne pas.

Cela devrait être une raison suffisante pour envisager de changer de
logiciel. Sinon je pense que vous auriez plus de réponses sur les
forums/listes consacrés à ce logiciel précisément, car ce n'est pas un
problème de PHP.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
Antoun
&acute n'est pas le ' mais le ` ( ce caractère sert à protéger certains
noms de variable dans les requêtes mysql ).


non, ça c'est &grave;

$eacute c'est le contraire : ´

Il faudrait faire une recherche sur ce caractère dans le code source, il
doit être oublié quelque part dans une requête d'insertion au moment
d'un copier/coller peut être.


Avatar
Elicend_news
"Patrick Mevzek" a écrit dans le message de
news:
pour tout dire, le fait étrange se produit sur phpnuke, avec
nsnyouraccount,
mais pas uniquement !

voila, lorsque j'ai des inscription, la plupart des champs remplis par
les
membres se retrovuent enregistrés en BD avec un ' a la fin (visible en
&acute; dans la bd)
je remarque de plus que dans certain cas, lorsque j'enregistre une phrase
(en faq par exemple) contenant une apostrophe, elle est automatiquement
doublée !?


Vous êtes probablement tombé sur des gens qui n'ont rien compris aux
injections SQL et qui croient s'en sortir en bidouillant avec les
apostrophes (quelle horreur que de les coder en HTML dans la base !)
Manifestement leur bidouille, en plus de ne servir à rien pour régler le
problème initial de sécurité, ne fonctionne pas.

Cela devrait être une raison suffisante pour envisager de changer de
logiciel. Sinon je pense que vous auriez plus de réponses sur les
forums/listes consacrés à ce logiciel précisément, car ce n'est pas un
problème de PHP.


Salut

merci pour vos réponses, en investigant tout ce WE, j'ai découvert qu'en
fait ce pb est récurent chez OVH ! Je l'ai partiellement réglé en commentant
la ligne s'occupant des &acute; en question, c'est ce qui est préconisé sur
les sites de phpnuke...

Le pb de ce logiciel/site, c'est qu'une fois que le site est bien en place,
difficile de changer, et tand qu'il ne prend pas d'ampleur, on ne met pas
forcément le doigt sur les pb...

Merci pour votre aide ;)
elicend.