Enlever les accents formulaire avant envoi

Fermé
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 - 21 févr. 2008 à 12:25
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 - 28 avril 2010 à 15:00
Bonjour tout le monde,

ayant des problèmes de configuration avec mon serveur (je sais pas d'ou ça vient j'ai demander partout personne ne sait me répondre cf -> http://www.commentcamarche.net/forum/affich 5040750 probleme d accent formulaire post?dernier#dernier) je voudrais savoir comment enlever ou transformer les accents par leur code HTML avant l'envoi du formulaire.. car le problème c'est que si le formulaire est envoyé en méthode POST avec des champs contenant des accents il y a une erreur...

Donc je voudrais savoir si quelqu'un voit comment faire en javascript ou autre comment remplacer ou enlever des accents dans un champ de formulaire juste avant qu'il soit envoyer (avant le submit enffet..)

Je pense qu'en javascript ça doit être possible ! :p

Merci beaucoup !

Romain.

16 réponses

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
21 févr. 2008 à 14:24
Bonjour,

C'est exact, javascript est nécessaire pour changer la valeur saisie dans un formulaire juste avant son envoi.

Pour trouver l'équivalent de htmlentities en javascript, pourquoi ne pas essayer Google javascript htmlentities ?

Pour ma part pour garder simple ton script, je m'entêterais pour attaquer le pb à la source : dans un premier temps, pourrais-tu mettre dans ton script recevant le formulaire un echo '<br>...' . $_POST[ 'tonParametre'] . '<br>';

Qu'est-ce-que ça donne (string affiché et code source de la page correspondant).
3
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
21 févr. 2008 à 16:59
j'ai essayer ceci :

<SCRIPT LANGUAGE="JavaScript">

function Noaccent(formulaire)
	{
	chaine = formulaire.adresse_email.value;
	temp = chaine.replace(/[]/gi,"a")
  	temp = temp.replace(/[]/gi,"e")
  	temp = temp.replace(/[]/gi,"i")
  	temp = temp.replace(/[]/gi,"o")
  	temp = temp.replace(/[]/gi,"u")
  	return temp
	formulaire.submit();


	}
</SCRIPT>
<!-- FIN DU SCRIPT-->


mon formulaire :
<form action="test.html" onSubmit="return(Noaccent(this))">
<input type="text" name="message" size=35> <input type="submit" value="Envoyer">
</form>	


mais ça ne fonctionne pas ...
3
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
22 févr. 2008 à 15:50
Merci pour ta réponse !

je tourne sous fedora core, voila la page concerné : http://www.mayattitude.com/send_sauv.php sinon j'ai trouvé un rapport d'erreur qui me parait interessant, ca viendra du mod_security :

--17bb8323-F--
HTTP/1.1 404 Not Found
Content-Length: 329
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

--17bb8323-H--
Apache-Error: [file "/builddir/build/BUILD/httpd-2.2.6/server/core.c"] [line 3633] [level 3] File does not exist: /var/www/html/favicon.ico
Stopwatch: 1203692015424522 10901 (760 8904 -)
Producer: ModSecurity v2.1.3 (Apache 2.x)
Server: Apache/2.2.6 (Fedora)

--17bb8323-Z--

--52357a78-A--
[22/Feb/2008:15:53:38 +0100] Yy7t1n8AAAEAACMoZjkAAAAB 192.168.1.10 4648 192.168.1.12 80
--52357a78-B--
POST /send.php?sendid=1 HTTP/1.1
Host: www.xxxx
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.xxx/send.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 50

--52357a78-C--
pseudo=%E9%E9%E9%E9&message=%E9&submit=Envoyer+%21
--52357a78-F--
HTTP/1.1 400 Bad Request
Content-Length: 346
Connection: close
Content-Type: text/html; charset=iso-8859-1

--52357a78-H--
Message: Access denied with code 400 (phase 2). Invalid Unicode encoding: invalid byte value in character. [id "950801"] [msg "UTF8 Encoding Abuse Attack Attempt"] [severity "WARNING"]
Action: Intercepted (phase 2)
Stopwatch: 1203692018527702 3544 (1009* 1897 -)
Producer: ModSecurity v2.1.3 (Apache 2.x)
Server: Apache/2.2.6 (Fedora)

--52357a78-Z--
3
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
22 févr. 2008 à 16:48
Bonjour,

j'ai trouvé la solutoin en désactivant le mod_security :) merci beaucoup en tout cas pour tout aide !

Problème résolu !
3

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

Posez votre question
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
21 févr. 2008 à 12:29
Va voir dans la doc des fonction comme urlencode et htmlentities.
2
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
21 févr. 2008 à 13:44
Je doute très fort que stripslashes soit la solution pour remplacer é par é
2
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 févr. 2008 à 17:51
Hou j'ai lu trop vite et confondu avec apostrophe.

Sorry
0
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
21 févr. 2008 à 16:31
Bonjour,

le problème est que dès que je valide un formulaire POST , quelque soit la page après, plutot quoit qu'il y est dedans ça foire, même si y a juste du HTML sans l'utilisation de $_POST['paramaetre']
2
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
21 févr. 2008 à 18:47
Je préferais essayer de résoudre ton pb de base : caractères accentués perdus dans les get et post.

Pourrais-tu essayer ce qui est en fin de message 5 ?
2
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
21 févr. 2008 à 19:04
Merci pour tes réponses Croy,

j'ai déjà essayer ce que tu me dis en message 5. Le soucis est que même si je met rien du tout comme PHP et comme récupération ou utilisation des variables $_POST ça merde.. :S Donc le soucis vient pas de la page recevant le formulaire mais plutot entre les deux..

en bref quand je met pas d'accent -> tout ce passe bien même pour l'utilisation des $_POST['etc']

si je met des accents -> impossible d'afficher la page recevant le formulaire -> page d'erreur : Bad request - server could understand request.


Merci pour tes différentes réponses car je t'avoue que je sais vraiment plus quoi faire !
2
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
21 févr. 2008 à 19:19
Pourrais-tu nous donner une copie d'écran de la fenêtre d'erreur.

Ton navigateur disposet-il d'un outil comme Firefox Outils > Entêtes HTTP en direct : dans ce cas donne également ce que ça donne.
1
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
21 févr. 2008 à 19:36
Voila,

j'ai mis les deux à la suite par contre c'est marqué que dans les méta c'est du UTF8 et l'encodage est marqué en ISO :s

je capte pas ça vient peut etre de la..

le lien -> https://imageshack.com/

merci de ton aide !
1
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
22 févr. 2008 à 08:33
Pourrais-tu me préciser le serveur utilisé ?

Est-ce-que je pourrais appeler moi-même ta page depuis mon poste ?
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 févr. 2008 à 13:32
Dans le script appelé, tu passes par la fonction de php stripslashes()
0
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
21 févr. 2008 à 14:05
Bonjour,

htmlentities fonctionne mais il faudrait le FAIRE AVANT l'envoi du formulaire car ça merde sinon !

merci
0
peut-on utiliser les accents et accents circonflexes dans le langage HTML ?
0
rom56 Messages postés 300 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 25 mai 2012 88
28 avril 2010 à 15:00
0