Merci encore pour ton aide :D
Dans la fonction doChallengeResponse(form) avant de créer la variable str qui sera transmise au formulaire, tu fais une requête ajax en envoyant le login pour rapatrier le sel correspondant en bdd (tu devrais vérifier cette étape avant de poursuivre).
C'est vérifié. Mon Ajax fonctionne parfaitement, j'ai le sel utilisateur en bdd rapatrié sur mon fichier avant le code de la fonction doChallengeResponse(form).
Côté php quand tu reçois le formulaire tu fais une requête en fonction du login qui retourne la valeur "hash(mot de passe+sel_bdd)". Et donc tu te sert du sel aléatoire défini et enregistré dans la variable de session pour construire hash($_SESSION["sel_aleatoire"] + hash(mot de passe+sel_bdd)) que tu compare à la valeur de $_POST['reponse'].
Cette partie je ne l'ai pas encore préparé mais ça à l'air très simple.
En revanche, la partie en js à l'air très compliquée, surtout quand le php et le js sont en relation l'un avec l'autre. 8-|
J'ai aussi du mal à adapter cette partie à mon formulaire déjà existant.
Là je dois dire avoir besoin d'aide... :priere:
Déjà, je sépare les fichiers: un fichier pour le formulaire et un autre pour le traitement du formulaire.
J'ai un petit niveau et je préfère donc éviter le 2 en 1.
Je vais poser des questions concises:
1) Par rapport à:
[javascript]
var str = form.utilisateur.value+'<?php echo $_SESSION["sel"]?>'+form.mot_de_passe.value;
[/javascript]
si j'ai un attribut name="visiteur" pour mon input du nom d'utilisateur et
un attribut name="mdpasse" pour mon input du mot de passe
dois-je remplacer le code js de la manière suivante:
[javascript]
var str = form.visiteur.value+'<?php echo $_SESSION["sel"]?>'+form.mdpasse.value;
[/javascript]
?
2) J'ai d'autres champs dans mon formulaire, dont un pour le captcha.
J'ai aussi déjà un bouton submit et un bouton reset.
Est-ce-que je peux supprimer la ligne
[javascript]
form.submit();
[/javascript]
?
Il m'est effectivement plus logique de poster ma variable form.reponse.value
par le bouton dédié à tout mon formulaire.
3) Si dans ma page de formulaire j'écris:
var str = form.login.value+'<?php echo $salt ?>'+form.password.value; //dans ma fonction ou en dehors, ça ne change rien dans les deux cas
<input type="text" name="str"/>
et dans ma page de traitement de formulaire j'écris:
$str=$_POST['str'];
echo $str;
mon echo $str; ne permet aucun affichage.
Je n'arrive pas à envoyer la variable $str dans les tuyaux.
Je ne sais pas si tu peux me dire comment faire si tu sais car je dois dire sécher complètement?
4) A propos de form. quelque chose
on retrouve plusieurs fois form. quelque chose dans la fonction js
exemple:
form.mot_de_passe.value
Suffit-il que la fonction js se trouve entre les balises <form> et </form>
de mon formulaire écrit en html, je le précise, pour que tous
les form.quelque chose soient référé à mon formulaire.
5) L'utilité de mettre le code js dans une fonction ici est de pouvoir retourner false
sinon à part ça on peut s'en passer.
C'est juste?
6) Enfin, si je peux poser une dernière question pour aller au fonds des choses,
je ne comprends pas pourquoi dans le code suivant seule la première variable
est précédée d'un var:
[javascript]
var str = form.utilisateur.value+'<?php echo $_SESSION["sel"]?>'+form.mot_de_passe.value;
form.reponse.value = SHA256(str);
form.mot_de_passe.value = "";
[/javascript]
Je croyais d'abord que toute variable en js était précédée de var.
=> dans ce cas pourquoi pas de var devant les deux autres?
Puis en me documentant un peu il semblerait qu'on ajoute var quand il est question d'une variable globale seulement.
=> dans ce cas pourquoi la première variable est précédée d'un var alors que les trois variables sont toutes dans une fonction?
Si tu peux répondre à ces quelques questions ça m'aiderait énormément :D