Verrouillage varible d'entrée en javascript

numters -  
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai écrit un mini programme en javascript. Voici en quoi il consiste: en gros il y a un calcul et l'utilisateur dois entrée une réponse. ensuite mon proramme dit si la réponse est juste ou fausse. Malheureusement si la réponse est fausse l'utilisateur peut facilement modifié la réponse. Voici donc ma question: comment vérouiller la réponse a partir du moment ou l'utilisateur a validé?

function test1()
			{	
				reponse1=parseInt(document.form1.reponse1.value);	
				
				if (resultat1==reponse1)																					
				{
					document.form1.texte.value="Bravo";		
				}
					else
					{
						document.form1.texte.value="1X1=1";		
					}
				
			}
----------------------------------------------------------------------------------------------------------------

resultat2=n2*nbre_2;			
		
			document.write("<FORM name='form2'>");
			document.write("<big>"+"<big>"+"2x1="+"</big>"+"</big>");
			document.write("<input type='text' name='reponse2'>");
			document.write("<INPUT type='button' name='calculer' value='ok' onClick='test2()'>"+"<br>");
			document.write("<input type='text' name='texte' readonly='readonly' size='30'></br></br>");
			document.write("</FORM>");


Merci d'avance !

4 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
Passer ton input text en disabled ?
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Hello,

Pourquoi ne veux-tu pas que la réponse soit modifiable ?
Tu peux aussi utiliser une variable javascript globale afin de stocker le fait que sa première réponse était fausse.
0
Joe
 
document.form1.reponse2.disabled=true;
0
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
L'utilisateur pourra toujours modifier la réponse, par exemple en exécutant un script "document.form1.reponse2.disabled=false;" (connaissais pas, merci Joe), ou au pire en enregistrant la page et en la modifiant. Si tu envoie la bonne réponse à l'utilisateur avec le formulaire, cet utilisateur pourra regarder dans le code source pour voir ce que vaut reponse1. "Never trust user input". Bon, après, l'utilisateur ne prendra pas forcément la peine de faire ça si ce n'est pas un truc important.

Idéalement, il faudrait envoyer la réponse de l'utilisateur au serveur, puis la garder en mémoire, si vraiment c'est important. Après, si c'est un simple questionnaire, rien n'empêche l'utilisateur de tester une fois pour avoir les bonnes réponses. Aucune contre-mesure pour ça...

edit : bon, ok, tout ça pour ne rien dire, désolé.
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
edit : bon, ok, tout ça pour ne rien dire, désolé.
Le plus génial c'est que quelqu'un t'as quand même mis +1 ... !

Surtout quand le mec demande une solution en JS et non en ajax....
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
En effet, Firebug permet aussi de lire le code JS de la page afin de lire la réponse dans la code ; ou encore de modifier le code HTML en direct pour rendre de nouveau accessible la zone en question.
0
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
Oui, mais pas besoin de Firebug pour lire le JS (et pour exécuter une instruction, le pensais surtout à entrer dans la barre d'adresse). Par contre, pour voir et éditer le HTML, même modifié par le JS, je connaissais pas. Y'a bien une ou deux fois où ça m'aurait été utile, merci de l'info. Mais tout cela n'a franchement aucun intérêt. Généralement, pour faire un QCM, c'est pour se tester, et puis les réponses ne sont probablement pas enregistrées. Bref.

PS : 'faudrait que quelqu'un me mette -1, pour que je n'apparaisse pas en premier quand c'est classé par vote...
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Rétabli.
0