Ajouter des champs hidden dynamiquement lors d'un submit

ViPHP
ViPHP | 928 Messages

08 août 2007, 14:56

Bonjour,
je vous expose déjà la situation :
j'ai un formulaire avec deux champs (login / password). Ce formulaire a un évènement onsubmit, qui applique une fonction sur le contenu des champs login et password (chiffrage RSA), comme ceci :

Code : Tout sélectionner

$('u_login_id').value = encrypt_rsa($('u_login_id').value); $('u_password_id').value = encrypt_rsa($('u_password_id').value);
ensuite le formulaire est soumis.

Le seul défaut, c'est que étant donné que je modifie le contenu de ces champs juste au moment du onsubmit j'ai :
- L'utilisateur qui verra le temps d'une demi seconde que ses champs ont été modifiés (avec des caractères bizares, puisques chiffrés)
- Lorsqu'il fait précédent, la page en cache contiendra les champs avec le contenu déjà chiffré

La solution a laquelle j'ai pensé : lors de la soumission du formulaire, j'encrypt le login et le password mais je les met dans des champs HIDDEN. Le hic, c'est que je ne sais pas comment ajouter dynamiquement des champs au formulaire sans passer par le innerHTML que je trouve très crade. J'aimerai donc pouvoir générer ces champs proprement, si possible sans utiliser de innerHTML au sein du formulaire.

En gros, j'ai simplement besoin de moduler ce que je vais envoyer en POST, sans avoir à modifier le contenu de mes champs login / password.

Comment faire ?
Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 août 2007, 15:05

Pourquoi ajouter ces champs dynamiquement ? Puisqu'ils sont cachés, laisse les donc en dur avec une valeur vide et met les à jour avec ta fonction lors de l'envoi du formulaire, pis on en parle plus... :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 928 Messages

08 août 2007, 15:08

Parce que ça m'arrangerait pas mal en fait, j'ai besoin que la mise en place de mon chiffrage RSA soit le plus simple possible, sans avoir à ajouter les champs en double en fait. Le code sera réutiliser par d'autres, et ce serait bien plus sympa si c'était fait automatiquement en Javascript.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 août 2007, 15:21

Bah dans ce cas tu peux jouer avec le dom et rajouter des inputs à ton formulaire avec les fonctions createElement() et appendChild() :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 928 Messages

08 août 2007, 15:36

Ah oui excellente idée, effectivement ça résout mon problème.

Merci pour tout !