Aller au contenu

Un input type passord qui ne s'efface pas


Sujets conseillés

Posté (modifié)

Bonjour,

J'explique mon problème: j'ai un formulaire classique avec un champ input type password. Lorsque quelqu'un valide ce formulaire et qu'il y a des erreurs, il est invité à le compléter en cliquant sur précédent.

Tous les champs précédement remplis sont conservés, ormis le champs password qui s'efface à chaque fois. La moitié de mes visiteurs ne s'en rendent pas compte et se retrouve à nouveau sur une page d'erreur leur indiquant qu'ils ont oublié de renseigner le password. Il s'agit pas d'un formulaire de connection donc l'effacement du passord n'a aucun interêt

Y a t-il possibilité conserver les infos entrées dans ce champ passord ? Je pourrai l'afficher dans un input type text mais ça fait pas pro d'afficher un mot de passe en clair.

J'espère que vous pourrez m'aider,

Loïc

Modifié par Cleden
Posté

Salut,

Faudrait voir comment tu récupères les valeurs entrées au départ.

Je ne suis pas sûr car je n'ai jamais testé, maisen php tu peux peut-être essayer ça :

<input type="password" name="password" id="password" value="<?php if (isset($_REQUEST['password'])) {echo $_REQUEST['password'];} else { echo '';}" />

Sans convictions mais bon :cool:

Posté

Bah en fait, je ne les récupère pas, c'est l'utilisateur qui les défini.

Le truc c'est que je vérifie les variables grace au php en passant à la page suivante. Si une des variable est mal renseignée, l'utilisateur doit passer à la page précedent (le formulaire) et le password disparait à chaque fois.

Donc ta méthode ne peut pas fonctionner la variable $REQUEST ne contient pas le passord. Merci quand même ;)

Loïc

Posté

Bah en fait je m'en doutais un peu , je suis un peu largué en php :P

Et si l'utilisateur revient en arrière avec un lien du genre <a href='java script:history.back()'>Retour</a>, ça ne le fait pas non plus ?

Si ça ne marche pas, sorry mais j'aurai tout donné :P

@+

Posté

$_REQUEST contient bien le password, puisqu'il a été soumis via le formulaire, avant d'arriver sur la page d'erreur.

Je pense que c'est un comportement normal pour un champ de type password.

Pour y pallier, il ne faut pas utiliser JS (si l'utilisateur ne l'a pas activé, le clic sur "retour" ne fera rien), mais plutôt rappeller la page précédente soit en passant tous les champs en hidden soit dans une session. C'est plus de taf, mais c'est le seul truc efficace, à voir si le jeu en vaut la chandelle juste pour un champ password.

Bon courage :cool:

Posté

Bah, justement, il revient avec ce type de lien (qui revient à cliquer sur le bouton précédent du navigateur), le mot de passe s'efface.

Merci pour ton aide ;)

Aie aie aie, je commence à me demander si c'est possible.

Posté

Non, je veux dire par "rappeller la page précédente", utiliser un lien classique <a href="mapage.php">, et non pas en Javascript... et dans ta page d'origine, des value=\"".$_REQUEST["lechamp"]."\" pour retrouver les valeurs ;

Autre solution, mettre ma vérification DANs le formulaire de départ, ça évite pas mal de problèmes...

Mais comme je te disais, le fait que le mot de passe s'efface est un comportement normal je pense...

Posté

Oui, en fait, ma réponse ne t'était pas destinée.

La solution est peut être dans un de ces formulaires à la mode avec des petites marques vertes qui s'affichent quand on répond bien :D Je vais essayer ça tout en gardant le php pour vérifier après de manière à palier ceux qui n'ont pas le js activé.

Posté

Je me répond à moi même.

Bien que ce soit ma bête noire, j'ai utilisé le javascript pour vérifier les champs, ça permet de ne pas avoir à recharger la page et le password est conservé. Je vérifie biensûr les champs par la suite avec php.

Bien que ce soit fonctionnel, je ne trouve pas esthétique ces alertes javascript qui s'affichent. Je cherchais donc un script qui affiche des petites croix vertes juste à coté des champs lorsque ceux-ci sont correctement renseigné.

J'en ai vu pas mal sur le net, maintenant que j'en ai besoin je n'en trouve plus. Je ne sais pas quels mots clés utiliser pour trouver ça, j'ai bien essayé "formulaire instantané" ou "formulaire ajax" mais je n'ai pas réellement besoin d'ajax.

Si quelqu'un avait un exemple sous la main, ça m'aiderai bien ;)

Loïc

Posté

Vite fait à la main :

<input type="text" name="champ1" id="champ1" onblur="test_champ('champ1',this.value)" /><img id="etiq_champ1" src="bad.png" alt="" />

Et le JS :

function test_champ(lechamp,lavaleur) {
if ( lavaleur.length > 0 )
document.getElementById("etiq_"+lechamp).src="ok.png"
else
document.getElementById("etiq_"+lechamp).src="bad.png"
};

Voilà il reste à adapter pour par exemple avoir différents types de tests (supérieur à 0, nom vide, identique à tel champ, adresse e-mail...)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...