IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

V�rification pr�sence JavaScript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    70
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Webmaster

    Informations forums :
    Inscription : Juin 2011
    Messages : 70
    Par d�faut V�rification pr�sence JavaScript
    Bonsoir � tous

    Bon je sais c'est une question d�j� pos�e mainte et mainte fois. Mais les recherches sur google renvoient des solutions toutes diff�rentes des unes des autres et j'ai du mal � voir ce qu'il me conviendrait le mieux, ce qui n'est pas bon..

    Alors je vous explique premi�rement la structure du site. J'ai un index.php avec un session_start();
    Il include (je simplifie) /pages/$_GET['pg'].php.

    Dans certaines pages, mes �l�ments ne fonctionnent qu'en javascript. Le probl�me c'est que j'aimerais que le site soit enti�rement fonctionnel m�me si javascript est d�sactiv�. Par exemple, je prend la page pour cr�er un nouveau compte. Il y a un formulaire, avec un captcha. Ce captcha est en jquery. Il s'inscrit: <div id="captcha"></div>. J'aimerais ajouter pour cette page un if($_SESION['javascript']=="disabled") par exemple, on n'affiche pas ce div captcha, mais un <img src="captcha.php"> avec un input text, afin de permettre � l'utilisateur sans js de rentrer un captcha et de valider ce formulaire.

    Je ne sais pas si j'ai �t� tr�s clair.
    Alors j'ai essay� un simple
    <noscript><?php $_SESSION['javascript'] = "disabled"; ?></noscript> mais �a d�finit la variable, que js soit activ� ou pas. Je poste sur ce forum car je pense que la solution est en javascript directement.

    N'h�sitez pas � me demander si quelque chose est flou.
    Je vous remercie par avance =)

  2. #2
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    cela ne peut se faire qu'avec un �change entre le client et le serveur

    le client demande une page
    le serveur ne sais pas si le client poss�de javascript
    il lui renvoie un page contenant un bout de js qui cr�� un cookie
    et fait une redirection (expire)

    du coup le client invoque la nouvelle page (par redirection ou clic)
    dans celle-ci tu peut lire les ent�tes de la requ�te et si le cookie est pr�sent il n'a put �tre mis que par le js c'est donc que le client � javascript

    tu ne peux pas sur le serveur lire ce qu'il a sur le poste du client
    tu ne peut que le lui demander (le coup du cookie est une fa�on de le demander)

    le serveur ne peut recevoir que les informations que lui envoie le navigateur
    et le support de javascript n'est pas une info que le navigateur envoie spontan�ment


    au passage
    Il include (je simplifie) /pages/$_GET['pg'].php.
    fait partit des pratique potentiellement dangereuse � �viter
    particuli�rement si le contenu est un script php (s'il contient des d�finition �a l'est moins)

    A+JYT

  3. #3
    Membre confirm�
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    70
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Webmaster

    Informations forums :
    Inscription : Juin 2011
    Messages : 70
    Par d�faut
    Bonjour seikaiijin

    Je sais tout �a, ce que j'aimerais savoir c'est quel m�thode utiliser.
    Pour les cookies, l'utilisateur peut les d�sactiver. Il me semble que ne soit pas une bonne solution.

    Pour l'include, j'ai bien pr�ciser que je simplifiais. Ce serais inutile de coller le code php de l'include alors que c'est pas le sujet, c'�tait juste pour pr�ciser que index.php contient une autre page.

  4. #4
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activit� : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par d�faut
    Salut,

    Perso je pense que si tu veux un Captcha accessible sans Javascript, il est inutile d'en incorporer un supl�mentaire en JQuery.

    Il vaudrait mieux se concentrer sur la cr�ation (ou recherche) d'un Captcha en "dur" qui contribue � se prot�ger contre le maximum de robots spammeurs qui visitent les pages sans JS.

    Mantenant, si je ne voudrais pas me s�parer de la "version Javascript" du Captcha, je ferais un truc du genre...
    Code xhtml : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<title>Test</title>
    	<style type="text/css" media="screen">
    		#noJS_captchaContainer{display:block}
    	</style>
    </head>
    <body>
    	<form action="http://accessible.exemple.com/soumission.php" method="post" id="form">
    		<div>
    			<label for="user">Utilisateur :</label><br /><input type="text" name="user" id="user" value="" /><br />
    			<label for="pass">Mot de passe :</label><br /><input type="password" name="pass" id="pass" value="" /><br /><br />
     
    			<div id="noJS_captchaContainer">
    				<label for="captcha">Code :</label> <img src="captcha.php" alt="" /><br />
    				<input type="text" name="captcha" id="captcha" value="" /><br /><br />
    			</div>
     
    			<input type="submit" value="Envoyer" name="send" id="send" />
    		</div>
    	</form>
    	<script type="text/javascript">
                    var elt=document.getElementById('noJS_captchaContainer');
     
                    /*      Si Javascript est activé, on peut cacher l'élément HTML (id="noJS_captchaContainer") avec le code
     
                                    elt.style.display='none';
                            
                            Mais il est préférable - pour éviter les conflits de noms (name et/ou id) - de... */
     
                    // Supprimer complétement l'élément HTML (id="noJS_captchaContainer")
     
                    while(elt.hasChildNodes())elt.removeChild(elt.lastChild);
                    elt.parentNode.removeChild(elt);
                    
                    // À partir d'ici ou une fois le document chargé (onload), on peut ajouter le Captcha JS dans l'arbre DOM.
            </script>
    </body>
    </html>

  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    D�cembre 2010
    Messages
    1 009
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : sans emploi

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 1 009
    Par d�faut
    [troll=on]
    s�rieux, � part les robots et les 2 geeks au fond d'un bois qui utilisent un navigateur en ascii sous linux dont j'ai oubli� le nom (et ceux qui ont d�sactiver le script sur une page bien sp�cifique pour trouver des failles) il y a 0% des "vrais" visiteurs qui n'ont pas javascript d'activ�.
    [/troll=off]

  6. #6
    Membre confirm�
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    70
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Webmaster

    Informations forums :
    Inscription : Juin 2011
    Messages : 70
    Par d�faut
    Salut Eric2a

    Mon captcha en dur est suffisant. Surtout que sur ce site il n'y aucun endroit ou des robots pourraient spammer.Tout le jquery qu'il y a sur le site, et pour e captcha, c'est pour rendre plus agr�able l'apparence et la navigation. Donc oui j'y tiens, j'aurais tr�s bien pu faire tout en php. C'est un + que je lui ai offert et que je lui laisserais.
    Honnetement je suis pas fan de ta solution, je me vois mal supprimer des �lements html sur toutes les pages ou il y a du javascript. En fait il n'y a pas une page sans.. Faire �a sur chacune des pages serait barbare.

    Willpower j'aimerais me dire comme toi, d'ailleurs j'�tais parti comme �a au d�part, mais les concurrents l'ont fait, alors je veux le faire aussi =P

    Toutes les donn�es sont rev�rifi�es en php derri�re, donc pour ceux "qui ont d�sactiver le script sur une page bien sp�cifique pour trouver des failles", c'est peine perdue.

    N'y a t il r�ellement aucune solution possible et qui tient la route sans �tre bourrin ?

  7. #7
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par flozza Voir le message
    Bonjour seikaiijin

    Je sais tout �a, ce que j'aimerais savoir c'est quel m�thode utiliser.
    Pour les cookies, l'utilisateur peut les d�sactiver. Il me semble que ne soit pas une bonne solution.

    Pour l'include, j'ai bien pr�ciser que je simplifiais. Ce serais inutile de coller le code php de l'include alors que c'est pas le sujet, c'�tait juste pour pr�ciser que index.php contient une autre page.
    le cookie �tait un example
    tu mets un js qui ajoute une image invisible de un pix dans la page l'url de cette image �tant un script php
    ce script lorsqu'il est activ� ajoute une info dans la sessions
    comme c'est un script js qui place l'image dans la page l'appel au script de l'image ne peut avoir �t� appel� que si le client � javascript il suffit donc de mettre cette info en session

    dans les autres pages il suffit de v�rifier la pr�sence du js dans la sesssion

    A+JYT

Discussions similaires

  1. [AC-2003] V�rification pr�sence fichier
    Par DUCKY_ dans le forum VBA Access
    R�ponses: 3
    Dernier message: 20/11/2009, 12h38
  2. API d'indentation et de v�rification syntaxe JAVASCRIPT
    Par fabboy dans le forum API standards et tierces
    R�ponses: 0
    Dernier message: 17/07/2009, 11h24
  3. V�rification pr�sence fichier
    Par Tifendro dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 25/06/2008, 17h25
  4. V�rification en javascript
    Par fatenatwork dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 11/03/2008, 19h07
  5. [PHP-JS] V�rification en javascript d'un tableau en PHP
    Par johnson95 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 06/12/2006, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo