Caractère "&"

Résolu
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010 - 2 févr. 2009 à 17:16
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010 - 20 févr. 2009 à 19:45
Bonjour,

J'arrive à récupérer correctement les caractère avec accents comme é è à , etc... Mais je n'arrive pas à récupérer le caractère "et commercial" -> &. Si je tape "titi & toto", cela va juste prendre "titi".
Une solution ?
Merci.

24 réponses

yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 15:18
J'ai trouvé !

Pour enregistrer dans la BDD :
rawurlencode($variable);

Pour afficher l'enregistrement de la BDD :
rawurldecode($variable);

Si on veut afficher des caractères avec accent comme "é" :
htmlentities(rawurldecode($variable), ENT_COMPAT);

Grâce à ces fonctions, on peut enregistrer des caractères spéciaux et à accents dans une BDD et les afficher correctement.
3
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 21:03
Plus simple :

Pour la transition des données ajax :
obj.send("id="+id+"&title="+escape(title)+"&comment="+escape(comment));

Pour la reception des données en Php :
Suivant le charset, il faut utiliser htmlentities($variable);

Cela permet d'avoir tout les accents et caractères comme : & é à è ï î $ % ù * / @ £ ¤

En espérant que cela aidera quelques uns.
3
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
2 févr. 2009 à 17:25
salut, essaie d'utiliser &
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
2 févr. 2009 à 20:00
J'ai du mal m'exprimer.
c'est quand je tape "&" dans un input que le problème apparait.
Si je tape "&" dans la page php, cela m'affiche bien un "&".
0

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

Posez votre question
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
4 févr. 2009 à 10:53
salut, c'est a quel endroit que tu arrive pas a le récupérer? dans ta base? dans un xml? dans un html?

Sans plus de précision on pas pas faire mieux que ce que te dis krolenain
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 11:32
Désolé.


Si je tape Num&riser, cela ecrit Num dans la table.


Merci.
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 11:33
Ps : c'est une table de BDD MySql.
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
4 févr. 2009 à 11:47
Ah je crois avoir compris, tu dois passer ta variable en GET, et le & dans un GET indique qu'il y a une autre variable après. Passe tes variables en post si c'est possible
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 11:49
Ah ok !!!!!
Je vais tester
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 11:56
Marche pas, c'était déjà en "post".

Peut être que cela vient de l'envoi des données de ma fonction ajax ? :

obj.send("id="+id+"&title="+title+"&comment="+comment);
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
4 févr. 2009 à 12:20
ah ben oui c'est ca, (c'est quand meme du Get ).
hmmm, j'ai jamais eu le prob devant moi pour ca, essaie de remplacer le & par sa valeur en ascii par exemple, et tu remet comme il faut dans ton traitement en php
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 12:26
c'est bien 38 le code ascii pour "&" ?
Je ne vois pas comment l'insérer dans le code
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
4 févr. 2009 à 12:32
alors le seul probleme c'est qu'il faut bien que tu remplaces par une chaine de char que tu n'auras aucune chance de retrouver dans un autre cas, histoire que t'ai pas des & partout si un mec tappe 3838 dans l'input.

Après pour le remplacement, intéresse toi à la méthode "replace" de javascript
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 12:45
ben, je vois pas :

var nouv = 38;
var anc = "&";
var et = anc.replace("&", nouv);

obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
obj.send("id="+id+et+"title="+title+et+"folder="+folder);
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 12:47
Comme ça non plus

var nouv = 38;
var anc = "&";
var et = replace(anc, nouv);

obj.send("id="+id+et+"title="+title+et+"folder="+folder);
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
4 févr. 2009 à 13:06
nan ca va plutot etre un truc comme ca:
var comment = tontexte en paramètre.
comment.replace('&',38)
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 13:12
maintenant, je peux enregistrer mais si je tape

num&riser envoi num38riser
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
4 févr. 2009 à 13:16
bon va falloir que tu cherches un peu par toi meme aussi, faut que tu refasses un replace derriere de on 38 en & dans ta page de traitement php
0
yahou29 Messages postés 44 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 janvier 2010
4 févr. 2009 à 13:18
t'inquiete pas, je cherche aussi de mon coté.
Le problème si je fais un replace, c'est que si je veut enregistrer "numéro28", cela va m'afficher "numéro&".
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009
4 févr. 2009 à 13:26
C'est exactement ce que je t'ai dit avant, il faut tu prévois de remplacer ton & par une chaine de caractère que tu sera sur de ne pas retrouver dans ton input. Par exemple par 'asc38'
0