Bonjour,

J'ai une page sur mon site qui fonctionne avec un mot de passe. J'ai utilisé une solution très basique qui fonctionne très bien avec mozilla , IE6 mais qui bugue avec IE7
C'est un vrai casse tete chinois alors j'aurai besoin de l'aide des avertis.

Voici le script
<SCRIPT>
<!--
function AccesProtege() {
	self.location.href=prompt("Mot de passe :","") + ".html";
	}
-->
</SCRIPT>


Voici le lien dans mon body:


  <P>Accédez au reportage
<A HREF="javascript:AccesProtege()">en cliquant ici</A>.</P>


Voici la page:
http://zooming.fr/zooming/reportage-en-ligne.html

Merci d'avance,
Corinne
Modifié par zellige (10 Aug 2007 - 12:22)
Salut Corinne Smiley cligne ,

d'après ce post trouvé sur developpez.com IE7 bloque le prompt javascript pour des raisons de sécurité Smiley ohwell .

Cela dit, étant donné ce que tu souhaites faire, un petit formulaire avec un seul input me semble plus indiqué. L'idéal serait même de faire le test en PHP plutôt qu'en javascript (obstrusif dans ton cas) mais à défaut un test sur le onsubmit devrait faire l'affaire...

Si PHP est disponible, tu peux utiliser quelque chose comme :

[b]reportage-en-ligne.php[/b]
<?php
$erreur_motpasse = false;
if (!empty($_POST['motdpass'])) {
	$motdpass = $_POST['motdpass'];
	$page = './'.basename(strval($_POST['motdpass']),'.html').'.html';
	if(file_exists($page)) {
		header('Location: '.$page);
		die();
	}
	else
	{
	$erreur_motpasse = true;
	}
}
?>
<!DOCTYPE ...

[b]et remplacer[/b]
Accédez au reportage en cliquant ici.

[b]par[/b]
<p>Pour accéder au reportage, saisir le mot de passe.<p>
<form method="post" action="">
  <label for="motdpass">mot de passe :</label>
  <input type="text" name="motdpass" id="motdpass" />
  <input type="submit" name="Submit" value="Envoyer" />
</form>
<?php
if ($erreur_motpasse) {
	echo '<p class="alert">Mot de passe incorrect !</p>';
}
?>


A+ Smiley smile
Modifié par Heyoan (11 Aug 2007 - 08:48)
+1 pour la solution d'Heyoan. Ça n'est pas le rôle de Javascript que de constituer une fonctionnalité complète d'un site, et le traitement par formulaire+script PHP est tout à fait indiqué.

Après, on peut utiliser du Javascript en surcouche non obtrusive, pour améliorer l'ergonomie, pourquoi pas.