Recharger page sans vider champs formulaire

metis15 Messages postés 507 Statut Membre -  
metis15 Messages postés 507 Statut Membre -
Bonjour,
je galère sur un truc :

J'ai un formulaire qui comporte un captcha pour éviter le spam.

Si l'image des lettres à recopier n'est pas bonne, on peut faire recharger la page pour voir un nouveau captcha...
Mais les champs qu'on a déjà remplis, reviennent vides.
C'est pas cool, le visiteur est vite énervée!(;o))))

Comment qu'on fait pour éviter ça...?

Merci pour les infos à venir !

2 réponses

Utilisateur anonyme
 
Pourquoi recharges-tu la page entière et pas seulement le captcha ???

Sinon le fait qu'ils reviennent vide correspond à une préférence de l'explorateur, le client peut décider de sauver ou non lors de la navigation le contenu des champs de saisie.
0
metis15 Messages postés 507 Statut Membre 11
 
Bah j'ai essayé en mettant un lien sur captcha.php afin de le recharger mais la page contenant le formulaire réapparait avec les champs vidés...
Faudrait que ça puisse marcher quelque soient les condition du navigateur client...

Merci pour ton aide (surtout si tu as une meilleure idée(;o)))
0
Utilisateur anonyme > metis15 Messages postés 507 Statut Membre
 
Evidemment si tu mets un liens vers captcha.php, toute la page se recharge.
Il faut recharger uniquement la zone contenant le captcha :
1.l'utilisateur clique sur recharger le captcha
2.tu envoies une request XMLHTTPRequest ( https://www.toutjavascript.com/savoir/xmlhttprequest.php3 ) vers ton fichier captcha.php
3.Le fichier captcha.php te renvoit une nouvelle image
4.Tu la mets à jour dans ta zone captcha
Tout ça sans recharger la page.
0
macgawel Messages postés 676 Statut Membre 89 > Utilisateur anonyme
 
Le problème, avec cette solution, c'est que ça suppose que le Javascript soit supporté par le navigateur, et pas désactivé...
0
metis15 Messages postés 507 Statut Membre 11 > Utilisateur anonyme
 
Pffffiou !!!!!
je suis sur la page de toutjavascript, je vais essayer d'installer ça !!
Chui pas doué, mais je ne lache pas le morceau.
Merci !!!
(à + pour le compte rendu !(;o))))
0
macgawel Messages postés 676 Statut Membre 89
 
Bonjour.

Il y a plusieurs solutions. En fait, ça dépend de comment tu gères le formulaire...

- Si ton formulaire envoie sur une page de vérification, tu peux utiliser les sessions, et stocker les données transmises avec
$_SESSION['nomduchamp'] = $_POST['nomduchamp'].
N'oublie pas, si le formulaire est valide, de faire un unset($_SESSION['nomduchamp']) ! (tu peux en profiter pour conserver le nom et autres informations...)

Et dans la page qui contient ton formulaire, tu testes
echo "<input type=... name='nomduchamp' value='";
IF isset($_SESSION['nomduchamp']) {
   echo $_SESSION['nomduchamp'];
}
echo "' />";


- Si ton formulaire renvoie sur la même page, tu n'as même pas besoin de passer par les sessions, il suffit, si le test du captcha est râté, de remplir les value de tes champs avec le $_POST['nomduchamp']

Voila pour le principe général. Après, pour être plus précis, il faudrait que tu donnes ton code...
0
metis15 Messages postés 507 Statut Membre 11
 
Ah voui...
Mais je suis nullissime en codage et ça, je ne vais pas arriver à le faire.
Par contre, je pourrais adapter un ensemble de page qui marche.
Enfin bon, je ne suis pas doué pour créer des tables dans MySQL qui est duchinois pour moi.

Bref, je suis dans la m....
(;o)))))))))
0
Utilisateur anonyme > metis15 Messages postés 507 Statut Membre
 
Qui te parle de mySql ? :/
C'est très facile à mettre en oeuvre, les exemples foisonnent sur le net, ici par exemple un très bon tuto : https://siddh.developpez.com/articles/ajax/#LIII
0
metis15 Messages postés 507 Statut Membre 11 > Utilisateur anonyme
 
Bon, j'ai un peu tout essayé, je n'arrive pas à faire marcher ces différentes solutions.
Je suis nul en code et ça ne va pas s'arranger.

J'ai donc monté une bidouille avec un iframe et ça marche...
C'est pas élégant, mais ça je sais faire.

Merci pour vos aides.
0