Détécter si javascript est activé + php / session

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 516 fois - Téléchargée 20 fois

Contenu du snippet

Bonjour tout le monde,

Voici mon premier post de script sur Codes-sources ! J' éspère qu' il vous sera utile.
J' ai cherché sur internet une façon de savoir si le visiteur a activé le javascript de son naviguateur, mais sans trouvé de solution simple.

ALors j' ai codé ce petit script qui n' a rien de méchant mais qui va vous permettre de savoir si JS est activé ou pas.

(Attention ce script utilise PHP et les sessions)

Source / Exemple :


// -------------------------------------
// Document test.php 
// ------------------------------------- 
<?php session_start(); ?>
<head>
<SCRIPT LANGUAGE="JavaScript">
EcranHaut = screen.height;
EcranLarg = screen.width;
Ecran = EcranLarg + "x" + EcranHaut;
</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<?php if(!empty($_SESSION['js'])){echo 'js est activé';}else{echo 'js est désactivé';}?>
<SCRIPT LANGUAGE="JavaScript">document.write("<iframe height=\"0\" width=\"0\" border=\"0\" style=\"border: 0px;\" src=\"test2.php?u=" + Ecran + "\"</iframe>");</script>

</body>
</html>

// -------------------------------------
// Document test2.php 
// -------------------------------------
<?php session_start();
$ecran = $_GET['u'];
$_SESSION['js'] = $ecran; ?>

Conclusion :


Bien comme vous l' avez compris la variable $_SESSION['js'] sera le témoin de l' activation de JS ou pas alors vous pourrait réutiliser cette variable partout tant que vous aurez fait un session_start();

Bug report : Et oui, parce que ' il en faut ! la première fois que l' on charge test.php, ca va nous dire que JS est désactivé, malgrès qu' il soit activé, il faut alors mettre à jour car il y a un décalage avec la iframe !

Voilà amusez vous bien !

peace.

A voir également

Ajouter un commentaire Commentaires
yousfane Messages postés 243 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 21 décembre 2007 2
14 juil. 2007 à 11:31
Salut
La balise noscript suffit
<noscript>js est désactivé</noscript>
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 juil. 2007 à 13:27
yousfane++
mais peut-être n'ai-je pas compris le but script ?
@+
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
15 juil. 2007 à 17:39
Salut :)

Bonjour la surcharge que le serveur devra suporter :)

Bon il y a vraiment beaucoup plus simple pour savoir si JS est activé ou pas sur le navigateur du visiteur. La solution de Yousfane est la plus simple ! Plus rapide que cela tu meurs :) ET en plus pas de iframe et ca fonctionne tout de suite :)

A mon avis il faudrait mettre ta source sur PHPcs car c'est juste de la manipulation de Session PHP et non du JS.


Sinon au niveau codage j'ai trouvé quelque fautes !

Niveau HTML :
- Faute grave mais c'est surment un oubli : il manque la balise <html>

Niveau JS :
- Faute que je trouve grave : Il manque le masquge pour les ancien navigateur.
- Encore plus grave : Les variables EcranHaut,EcranLarg, Ecran ne sont pas déclarées.
- Idée pour optimisation : Les varaibles EcranHaut et EcranLag sont inutiles ! Tu peut ecrire cela : Ecran=screen.height+"x"+screen.width;

Niveau PHP :
- Faute grave : Dans la page test2.php tu fait : $ecran = $_GET["u"]; sans tester avant si $_GET["u"] existe !
- Au niveau des sessions tu as plein de chose à revoir : Ok pour l'utilisation de $_SESSION mais quand tu fait cela : $_SESSION['js'] = $ecran; sans avoir fait session_register("u"); j'ai de grande peir que cela ne marche pas surtout si dnas ton php.ini tu as : error_reporting = E_ALL :(
- Pareil que dnas le Js la varible ecran est inutile :)

Sinon je met 2/10 pour l'originalité de testé si JS est activé par PHP
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 juil. 2007 à 07:29
le but etant de donner l'info a du php et non a du js ou du html, la solution de yousfane n'est pas la bonne (ou alors j'ai pas compris la source)
cependant, opitech a remarque de bonnes erreurs, et phpdebutant permet de faire ce script en lisant les premiers tutos, donc ca ne vaut pas du tout initie...

http://fr2.php.net/manual/fr/function.session-register.php
cependant la remarque pour session-register est deplacee :
Attention
Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.

register_globals : note importante: Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off et est complètement retirée depuis PHP 6.0.0. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
16 juil. 2007 à 13:15
Merci pour le sinfos sur session_register() je n'étais pas au courant de ces détails :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.