Détecter javascript

Résolu/Fermé
Sam666 - 28 nov. 2007 à 22:58
 WaZeR - 5 mars 2017 à 15:25
Bonjour,

J'ai une page avec un user et un mot de passe qui donne accès à un site qui utilise javascript... J'aimerait faire en sorte que si une personne n'a pas javascript d'activé, elle n'est pas accès à cette page.

Merci de votre aide.

4 réponses

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
29 nov. 2007 à 00:37
Attention !

Ne pas confondre Java avec JavaScript, c'est une erreur courante. En effet navigator.javaEnabled() peut vérifier la disponibilité Java (c'est à dire la capacité de pouvoir lancer une applet) et non JavaScript.

Si l'utilisateur n'a pas JavaScript activé il est impossible de le savoir via JavaScript, ce qui est logique. Néanmoins en HTML il existe la balise <noscript></noscript> non reconnue par les navigateurs ne possédant pas JavaScript activé. Qui dit balise non reconnue veut dire balise ignorée et texte compris entre ces balises affiché "tout simplement". En gros donc l'idée c'est de mettre
<noscript>Désolé vous devez avoir JavaScript activé pour accéder à cette page</noscript>
et pour le reste de générer la page exclusivement en JavaScript à coups de
document.write("<p>bla bla vous pouvez accéder à...</p>");

Autre chose, si ton intention est de vérifier un login/mot de passe via JavaScript, saches que tu te plantes d'avance. JavaScript doit être vu comme un plus, on ne sait pas l'utiliser pour restreindre l'accès à une page. Exécuté côté client, tout ce qui peut être accédé avec JavaScript peut l'être sans (avec moins de facilités mais accédé quand même).

Le seul moyen de fournir un accès login/mot de passe est d'utiliser les outils serveur appropriés (restrictions serveur -par exemple htaccess Apache- , couple langage se script/base de données -par exemple PHP/MySql-, ...) mais c'est un autre domaine.
5
Merci c'est ce que je cherchais :D
0
Bonjour.
J'ai pensé à une solution qui pourrais fonctionner:
Si le code arrive à s'exécuter $javascript prend la valeur de retour et sinon elle est égale à une chaine vide.
<?php
$javascript = "<script type=\"text/javascript\">
		<!--
		document.write('1');
		-->
		</script>";
			
echo "javascript : ".$javascript."<br>";
if($javascript == "1")
{
	echo "true";
	$JS = true;
}
else
{
	echo "false";
	$JS = false;
}
?>


J'obtiens bien "javascript : 1" quand il est activé et "javascript : " quand il ne l'est pas mais à la comparaison ça me retourne toujours false...
0
Normal, tu as confondu un code serveur (Php) et un code client (Javascript).
Tu ne peux donc pas tester si Javascript fonctionne tant que tu n'as pas affiche le Php dans le navigateur.
Amicalement
0
Smocrate > Didierma
16 nov. 2008 à 12:12
C'est bon j'ai trouvé comment faire, pour ceux que ça intéresse ;)
Si les gens active le javascript entre temps, la modification est prise en compte

<?php
session_start();

if(!isset($_SESSION['js'])) $_SESSION['js'] = true;
if(isset($_GET['js']))
{
	if($_GET['js'] == "no" ) $_SESSION['js'] = false;
	else if($_GET['js'] == "yes") $_SESSION['js'] = true;
}

// si javascript est activé le <noscript> ne sera pas prise en compte
if($_SESSION['js'])
{
// dans le cas contraire on recharge la page avec le parametre js=no
echo '<noscript>
<meta http-equiv="Refresh" content="0; URL=index.php?js=no">
</noscript>';
}
// s'il est pas activé le <script> ne sera pas prise en compte
else
{
// dans le cas contraire on recharge la page avec le parametre js=yes
echo '<script language="JavaScript" type="text/javascript">
document.location.href="index.php?js=yes";
</script>';
}
?>


ça fonctionne super bien :)
0
ben2marseille > Smocrate
1 déc. 2009 à 17:16
Merci pour ce script.
Je l'ai utilisé tel quel, pour l'instant, et il fonctionne bien.
Court et employant php.

Benali
0
Merci Smocrate
Je cherchais ce script depuis longtemps, c'est exactement ce dont j'avais besoin.
0
Salut

L'objet navigator de java est justement fait pour cela.
navigator.javaEnabled()
te retournera TRUE si java est activé sur le poste du visiteur et FALSE sinon
navigator peut etre très pratique pour connaitre des informations concernant le navigateur des visiteurs, leur système d'explotation, l'activation ou non des cookies...
;) enjoy
-1
Je me suis pris d'une autre manière mais grâce à ta réponse, j'ai pu allumer sur comment m 'y prendre.

J'ai tout simplement créer une page no_javascript qui appelle un script javascript de redirection vers ma page.

Donc si la personne n'a pas javascript activer, la redirection ne se fait pas donc affichage de la balise <noscript>

Merci à toi !
-1