Probleme d'apostrophe

guyom -  
 leroidelesprit -
salut,

j'ai un formulaire avec une liste de nom d'entreprises; le visiteur doit selectionner un de ces noms ce qui genere une requete sql et l'affichage d'une nouvelle page asp.
la requete plante lorsque le nom selectionné contient une apostrophe... comment puis-je faire pour contourner le probleme?

merci

5 réponses

teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Faire un test avant et remplacer les ' ...
En detail, je sais plus en asp, mais c'est faisable, mais relativement chiant...

*,*
\_/
0
guyom
 
tu veut dire qu'il faut que je parcour toute la chaine pour remplacer les ' par autre chose...
existe t'il un caractere qui permet de zaper les apostrophe un peu comme l'anti-slash ou quelque choz du meme genre?
0
sebsauvage
 
cher guyom :

Je suis en mesure de te dire que ton cher serveur est actuellement grand ouvert au hackers.
Le simple fait que tu utilises la chaîne tapée par l'utilisateur tel quel dans les requêtes t'expose à de très chouettes possibilité de bidouillage de ta base de données par n'importe qui.

Règle d'or quand on utilise du texte libre dans des requêtes:

Toujours doubles les apostrophes.

l'autre => l''autre

Sinon ça laisse la possibilité d'insérer du code SQL dans le texte => sprocht le serveur.

(Je crois que j'en avais déjà causé sur ce forum).
0
Fricky42 Messages postés 566 Statut Membre 182
 
J'ai le meme probleme mais en PHP.

Toujours doubles les apostrophes.

Comment ca ? Utiliser des doubles quotes ? Ca revient au meme oO.

Ou veux tu dire qu'a chaque fois il faut prendre la chaine, parcourir, remplacer les quotes par 2 quotes (et non pas une double-quote), puis l'utiliser dans la requete ?
Hmmm Pas envie de me prendre la tete si il n'y a pas besoin.

Donc ma question : Existe t-il en PHP une fonction qui va me proteger mes chaines que je souhaite utiliser dans mes requetes ?

Mici =))
0
Fricky42 Messages postés 566 Statut Membre 182
 
Ah bah je pense avoir trouve :
les fonctions addslash et stripslash :

http://www.allhtml.com/articles/detail/249
0
Fricky42 Messages postés 566 Statut Membre 182
 
Hop triple post (mwahaha je suis un rebelle).

Que se soit avec addslashes/stripslashes ou avec mysql_real_escape_string() j'ai le meme soucis :

Pour envoyer la requete (UPDATE machin truc) il n'y a plus de probleme... les caracteres speciaux ne sont plus considéré comme tel et ainsi le mot kol'han sera effectivement enregistre kol'han dans la base.

Mais lorsque je veux faire un SELECT du champs je ne recupere non pas kol'han mais seulement kol...

Quelqu'un aurait une explication ?

Merci de votre attention =).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leroidelesprit
 
Oui tes apostrophes ne sont pas protégés par des antislashs donc lorsque la chaîne transite
le PHP interprète ton apostrophe comme une fin de chaîne.
0