Enlever les accents formulaire avant envoi
rom56
Messages postés
309
Statut
Membre
-
rom56 Messages postés 309 Statut Membre -
rom56 Messages postés 309 Statut Membre -
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.
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
-
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). -
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 ... -
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--
-
Bonjour,
j'ai trouvé la solutoin en désactivant le mod_security :) merci beaucoup en tout cas pour tout aide !
Problème résolu ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Va voir dans la doc des fonction comme urlencode et htmlentities.
-
Je doute très fort que stripslashes soit la solution pour remplacer é par é
-
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'] -
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 ? -
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 ! -
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. -
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 ! -
Pourrais-tu me préciser le serveur utilisé ?
Est-ce-que je pourrais appeler moi-même ta page depuis mon poste ? -
Dans le script appelé, tu passes par la fonction de php stripslashes()
-
Bonjour,
htmlentities fonctionne mais il faudrait le FAIRE AVANT l'envoi du formulaire car ça merde sinon !
merci -
-