Problème password javascript

Résolu/Fermé
Cyril - 3 nov. 2007 à 18:12
 Cyril - 4 nov. 2007 à 13:51
Bonjour, je bloque que un script javascript très simple, que je suis en train de bidouiller. Je souhaiterais sur mon site, à partir d'une page de menu, que les internautes, puissent se rendre rapidement la page qu'ils désirent, en tapant le nom de cette page (en l'occurence un simple numéro), dans un champ de texte. J'ai donc pensé utiliser un javascript de mot de passe : les internautes cliquent sur un bouton présent sur la page de menu, un alerte s'ouvre, leur demandant le mot de passe, en l'occurence, le numéro de la page qu'ils souhaitent ouvrir. Jusque-là tout va bien : le problème est que s'ils tapent un nom n'existant pas, je souhaite qu'un alerte les en avertisse(dernière partie "else" du script en gras). Mais, je ne sais pourquoi, cette dernière alerte se déclenche à chaque ouverture. Si quelqu'un pouvait m'indiquer où mon script plante, ou si quelqu'un avait une solution alternative, et simple à mettre en oeuvre à me proposer. Merci beaucoup.

<!-- DEBUT DU SCRIPT MOT DE PASSE-->
function pass()
{
password=prompt('Entrez le numéro de la page désirée :',"");

if (password == "0000")
{
alert("Souhaitez-vour vraiment ouvrir la page: 0000")
location.href= "adraw/0000.html"
}
if (password == "1102")
{
alert("Souhaitez-vour vraiment ouvrir la page : 1102")
location.href= "adraw/1102.html"
}
if (password == "1202")
{
alert("Souhaitez-vour vraiment ouvrir la page : 1202")
location.href= "adraw/1202.html"
}
if (password == "1301")
{
alert("Souhaitez-vour vraiment ouvrir la page : 1301")
location.href= "adraw/1301.html"
}
else
{
alert("Désolé cette page est inconnue")

}
}
document.write('<form><input type=button value="Recherche rapide" onClick="pass()">')
<!-- FIN DU SCRIPT MOT DE PASSE-->
A voir également:

7 réponses

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
3 nov. 2007 à 19:49
Salut,

Si tu regardes la structure de tes blocs if else... tu remarqueras que ton else est associé à la condition (password == "1301").

Normalement pour être cohérent dans ta logique de programmation tu devrais faire :

si code == untel
actions
sinon si code == untel
actions
sinon si code == untel
actions
sinon
code non connu

Là actuellement il passe toujours dans ton else (en plus d'ouvrir la bonne page si tu choisis 0000, 1102 ou 1202) à moins que le code vaille 1301 (seul cas où ton code fonctionne). Bon courage !
0
Merci Posotaz, mais je t'avoue que je ne sais pas trop comment suivre concrètement tes conseils : quelles modif' dois-je effectuer dans mon script ? J'ai essayé ça et c'est encore pire (ce qui d'ailleurs est tout à fait logique, mais qui ne tente rien n'a rien) :

<!-- DEBUT DU SCRIPT MOT DE PASSE-->
function pass()
{
password=prompt('Entrez la pages désirée :',"");

if (password == "0000")
{
alert("Souhaitez-vour vraiment ouvrir la page 0000")
location.href= "0000.html"
}
else
{
alert("Désolé cette page est inconnue")
}
if (password == "1102")
{
alert("Souhaitez-vour vraiment ouvrir la page 1102")
location.href= "1102.html"
}
else
{
alert("Désolé cette est inconnue")
}
if (password == "1202")
{
alert("Souhaitez-vour vraiment ouvrir la page 1202")
location.href= "1202.html"
}
else
{
alert("Désolé cette page est inconnue")
}
if (password == "1301")
{
alert("Souhaitez-vour vraiment ouvrir la page 1301")
location.href= "1301.html"
}
else
{
alert("Désolé cette page est inconnue")
}
}
document.write('<form><input type=button value="Recherche rapide" onClick="pass()">')
<!-- FIN DU SCRIPT MOT DE PASSE-->

Avec ce script, le navigateur ouvre autant d'alert que de "else"...
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
4 nov. 2007 à 00:10
Aieuh :D En effet... mais c'est bien d'avoir essayé.

Voici le code comme je te l'ai expliqué :
<!-- DEBUT DU SCRIPT MOT DE PASSE-->
function pass()
	{
	var password = prompt('Entrez la page désirée :',"");  // Il vaut mieux déclarer tes variables avec 'var'

	if (password == "0000")
		{
		alert("Vous allez ouvrir la page 0000"); // et terminer tes instructions par un point-virgule
		location.href= "0000.html";
		}
	else if (password == "1102")
		{
		alert("Vous allez ouvrir la page 1102");
		location.href= "1102.html";
		}
	else if (password == "1202")
		{
		alert("Vous allez ouvrir la page 1202");
		location.href= "1202.html";
		}
	else if (password == "1301")
		{
		alert("Vous allez ouvrir la page 1301");
		location.href= "1301.html";
		}
	else
		{
		alert("Désolé, cette page n'existe pas");
		}
}
document.write('<form><input type=button value="Recherche rapide" onClick="pass()">')
<!-- FIN DU SCRIPT MOT DE PASSE--> 
Sinon je vois que tu demandes une confirmation par un alert mais ça ne sert à rien parce qu'on clique sur la croix ou sur le bouton Ok, c'est pareil. Je te dis juste que tu devrais utiliser window.confirm mais je te laisse chercher comment ça fonctionne, d'autant plus que dans ton cas ça ne sert à rien, c'est une question assez relou. ;-)
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
4 nov. 2007 à 00:12
edit : a ben ca a été répondu (mieu que moi) donc je supprime ce que j'ai di ca fesai doublons
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut, merci pour vos remarques très précieuses. J'ai suivi vos conseils et j'ai fait ça :

<!-- DEBUT DU SCRIPT MOT DE PASSE-->
function pass()
{
var password = prompt('Entrez la page désirée :',"");

if (password == "0000")
{
location.href= "0000.html";
}
else if (password == "1102")
{
location.href= "1102.html";
}
else if (password == "1202")
{
location.href= "1202.html";
}
else if (password == "1301")
{
location.href= "1301.html";
}
else
{
alert("Désolé, cette page n'existe pas");
}
}
document.write('<form><input type=button value="Recherche rapide"
onClick="pass()">')
<!-- FIN DU SCRIPT MOT DE PASSE-->


Et ça ne marche pas : y' pas de bouton qui s'affiche sur ma page web...
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
4 nov. 2007 à 13:00
document.write('<form><input type=button value="Recherche rapide" onClick="pass()">') 
cette phrase doi etre ecrite sur une seule ligne dans ton code sinon ca ne marche pas



j'ai un autre truc a te proposer
ca fai la meme chose mais a mon avis c'est mieu :
<!-- DEBUT DU SCRIPT MOT DE PASSE-->
function pass(){
	switch (prompt('Entrez la page désirée :',"")){
		case "0000":location.href= "0000.html";break;
		case "1102":location.href= "1102.html";break;
		case "1202":location.href= "1202.html";break;
		case "1301":location.href= "1301.html";break;
		default:alert("Désolé, cette page n'existe pas");break;
	}
}
document.write('<form><input type=button value="Recherche rapide" onClick="pass()">')
<!-- FIN DU SCRIPT MOT DE PASSE--> 
0
Ca marche super. Merci beaucoup nEm3sis. En plus ton script sera plus facile à élargir un à grand nombre de page. Encore une fois merci, et chapeau l'artiste ;°)
0