|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
Bonjour à vous et bonne année !
Je vous explique ma situation. Je travaille sur une table d'une base de donnée qui n'a pas de clef primaire. Je dois donc faire passer la valeure d'une donnée dans ..... - dans des variables PHP - des quotes ' et " de balise HTML - dans des variables Javascript - dans un POST - Dans une requete SQL en text - Peut être dans un LIKE Je vous avous que cette histoire me met vraiment dans la m**** Sauriez vous comment faire ?? |
|
|
00
|
|
|
#2 | ||
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 140 ![]() |
Je comprends rien à ce que tu veux dire, je vois pas pourquoi tu as besoin de "faire passer ta donnée" partout.
Code :
|
||
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
Code :
ensuite avec si par exemple ma donnée c'est $data="truc&much=machin" alors si je veux l'envoyer par POST sous le nom de data, je dois envoyer data=truc&much=machin. A la réception, bien évidemment, $_POST['data'] ne vaudra que truc. Pour le LIKE, si j'ai un $sql="SELECT * FROM matable WHERE bidule LIKE '$motDuDebut%' si mot du début vaut %, il ne va pas me rechercher toute les occurences commençant par le caractère %. Encore pire, si $motDuDebut contient un ' là c'est toute la requete qui saute. |
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
j'ai trouvé une partie des fonctions que je cherchais :
urlencode pour ce qui est du POST et htmlentities pour le html. Pour ce qui est des requêtes sql j'ai trouvé que mysql_real_escape_string () pour l'instant mais il je ne travailles pas avec mysql |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
c'est dommage en fait, vu que c'est du coté serveur, je pourrais m'en servir (ou plutôt des fonctions inverses) que pour décoder :/
|
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
En général, tu as des équivalents à mysql_real_escape_string() fournis par les API des autres SGBD, cherche dans la doc ...
Tu peux aussi utiliser PEAR avec le package MDB2 qui est une API "universelle" pour la plupart des SGBD et qui propose cette fonctionnalité, sans avoir à se préoccuper de quel SGBD on utilise (je suppose que PDO doit le faire aussi, mais je n'en suis pas sûr)
__________________
Ne cliquez pas sur ce lien |
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
J'ai trouvé quelque réponse à mes questions.
- dans une propriété de balise HTML => entre des quotes ' et " : il faut rajouter appliquer htmlentities à la variable avant de l'injecter entre les quotes. pour javascipt, faire ou trouver une fonction équivalente vu qu'elle n'existe pas - pour un POST => même problème : à partir de PHP c'est simple -> urlencode et urldecode ; javascript -> rien du tout - Dans une requete SQL pour une clause WHERE machin = '$a' un simple addslash() en PHP (car SQL échappe les ' avec un \ ), et rien en javascript. voilà edit: addslash ça marche pour mysql je crois, pour oracle il faut doubler les quotes pour les échapper |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
Bonjour.
Mon problème est toujours d'actualité et je n'ai trouvé, à cette heure, aucune solution viable. Je suis vaiment étonné de voir que je suis le premier à qui ça pose problème. Je vais esssayer d'être plus clair : Une page en HTML+javascript transmet des info d'un formulaire en "AJAX" à une page PHP qui renvoi le résultat à la page. Pour éviter les erreurs de ce type, il me faut donc encoder comme un formulaire les infos envoyées puis les décoder. Les deux languages ont des fonctions qui échappent les caractères mais elles ne peuvent communiquées entre elles. Il s'agit des fonction urlencode/urldecode pour PHP, encodeURI/decodeURI ou encore encodeURIComponent/decodeURIComponent. Ce que je n'arrive pas à savoir c'est quelle compatibilitée a-t-on entre ces fonction pour l'échange de donnée Javascript <-> PHP |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() |
Tu n'es pas le premier à être confronté aux problèmes d'échappement/encodage de caractères spéciaux.
Mélanger Javascript, PHP et MySql est également habituel. Maintenant, très concrètement, quel est ton problème ? As-tu des exemples de cas où tu as eu un problème ?
__________________
|
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
concretement voilà l'état et le chemin de la valeure :
Etat 1 dans une page HTML, encodée par (PHP)HTMLentities. Etat 2 récuperé par Javascript Etat 3 manquant encodé pour le POST Etat 4 concaténé avec d'autre valeures qui ont subit le même traitement qu'elle, dans une chaine du type : Code :
"nom=".val1."&prenom=".val2"&...="... etc... la chaine est envoyée en POST à ma page PHP de traitement, donc l'affichage sera récuperé (à la fin de son execution) pour être injecté dans la page HTML courante par Javascript (de l'AJAX sans XML) Etat 6 Du POST, la chaine est décodée et redécomposée en variables par de simple $_POST['nomVariable'] (logiquement la valeure de la variable est décodée telle que me ferait (PHP)urldecode()) Etat 7 (PHP)html_entities_decode(maVariable) me restitu le texte souhaité Etat 8 - 0 le traitement est effectué, d'autre variable sont encodée par (PHP)html_entities() et renvoyé à la page HTML, fins prêts pour faire un autre tour |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() |
Si je comprends bien, c'est pour l'étape 3 que tu souhaites des éclaircissements ?
__________________
|
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
exactement, j'ai trouvé les fonctions encodeURI et encodeURIComponent en Javascript. Mais, malgrés mes recherches, je n'ai aucune certitude quant à la compatibilitée de l'une de ces fonction avec le "POST"décodage de PHP.
Si vous en savez plus, je vous serais reconnaissant de m'éclairé sur la question. merci |
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() |
encodeURIComponent fait très bien ce travail et te permettra de récupérer le contenu original des variables grâce à PHP.
http://developer.mozilla.org/fr/docs...deURIComponent
__________________
|
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 41 ![]() |
Merci pour votre conseil.
Cette fonction marche. Esperont que ce soit bien pour tout les cas. Encore merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com