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 :

comprehension lecture cookies


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut comprehension lecture cookies
    Bonjour
    Pour ceux qui me connaissent me revoilà avec une de mes fameuses questions bêtes ^^
    Pour les autres Enchanté de faire votre connaissance

    Mais sérieux
    Je débute en javascript et j'ai un petit soucis de compréhension sur les cookies:

    Pour créer les cookies sa va mais j'ai beaucoup de mal a comprendre clairement la manière de les lire et exploiter.
    J'ai bien trouvé une soluce sur le net avec des regex mais j'avoue que j'y pige rien lol.

    Pour etre plus clais je vais devoir vous coller le code pour créer que j'utilise et celui pour lire qui marche mais que je pige pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function ecrire_cookie()
    {
     
    var date_expiration=new Date(2999,12,31);
     
    var sName="tonPrenom";
     
    var sValue= document.getElementById('champText');
    sValue=sValue.value;
     
     
    document.cookie = sName + "=" + sValue + ";expires=" + date_expiration.toGMTString();

    et c'est la que je comprends pas:

    Code : 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
     
    function lireCookie() 
    {
    var sName="tonPrenom";	
    /*La on definit le nom du cookie a lire je pense  sa sa va*/
    var oRegex = new RegExp("(?:; )?" + sName + "=([^;]*);?");
     /*Ici je cromprends vraiment pas*/
    if(oRegex.test(document.cookie)) {
    /*La c'est le test pour voire si le cookie existe je presume ^^*/
    return decodeURIComponent(RegExp["$1"]);
    /*Et la je suis reperdus*/
    } 
    else 
    {
    return null;
    }
     
    }

    Si vous pouviez avoir pitié d'un pauvre débutant et expliquer sa de manière a ce que même moi je puisse comprendre sa serait sympa ^^
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    visiblement l'expression régulière permet de vérifier la présence du champ tonPrenom. Et s'il existe cela retourne sa valeur.

  3. #3
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Elle permets surtout d'extraire le contenus je pense mais
    ("(?:; )?" + sName + "=([^;]*);?");
    et
    RegExp["$1"])
    sont au dessus de mes capacités de compréhension actuelles je pense
    Tu pourrais m'expliquer comment sa marche exactement pleas?

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par EIN-LESER Voir le message
    Elle permets surtout d'extraire le contenus je pense
    Non pas du tout.

    Ta fonction ecrire_cookie() crée un cookie et ajoute dans ce cookie un champ sName à qui tu lui donne une valeur sValue et sa date d'expiration.
    Ton cookie sera de la forme (à peu de chose près) :
    tonPrenom=toto;exprires=Thu,%2030%20Jan%203000%2023:00:00%20GMT
    %20 est le code de l'espace. Un cookie ne doit pas contenir d'espace.
    D'ailleurs je suis surpris qu'il n'y ait pas d'appel à la méthode escape()


    Ensuite ta fonction lireCookie() va lire le contenu de ce cookie : tu vas créer une expression régulière qui va te permettre de repérer dans ce cookie le champ sName (a priori tu ne connais pas la position de ce champ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "(?:; )?" + sName + "=([^;]*);?"

    La méthode test() dans le if vérifie si le texte contenu dans le cookie correspond à l'expression régulière définie précédemment.
    Dans ton cas, il ne faut pas que la valeur de sName soit vide :
    Et si test() renvoie true tu renvoies la valeur de sName.

    Par contre, je l'avoue le code de l'expression régulière me laisse perplexe car je n'ai jamais vu cette syntaxe dans les expressions régulières javascript

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    ( => on ouvre un groupe de recherche ;
    ?: => les correspondances trouvées ne seront pas stockées (pas possible de rappeler via $n) ;
    ; => on recherche un point-virgule ;
    ) => on ferme le groupe de recherche ;
    ? => ce groupe est recherché 0 ou 1 fois ;
    sName+ "= => on recherche la chaine sName puis le signe =;
    ( => on ouvre un autre groupe de recherche ;
    [^;] => on recherche tous les caractères qui ne sont pas un point virgule ;
    * => on recherche 0 ou plusieurs occurences de 'non ;' ;
    ) => on ferme le groupe de recherche que l'on pourra retrouver avec $1 (back reference) ;
    ;? => on recherche un point-virgule 0 ou 1 fois.

    EDIT :
    RegExp["$1"] te retourne donc bien sValue (la back reference 1) !

  6. #6
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Génial bovino comme sa sa me parle déjà un peux plus


    Mais il y a pas plus simple pour faire sa sérieux?

  7. #7
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Il existerais pas une maniere plus simple de lire un cookie et d'en extraire ce qu'on cherche?
    J'ai tendance a rien piger a la methode precedament cite malgrés les explications fournis (je dois etre trop blond pour sa lol)
    Si quelqun a une idée merci d'avance.

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Si, ton cookie est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cookie = param1=valeur1;param2=valeur2
    donc tu peux séparer les paires paramètre/valeur par la méthode split() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var champs = cookie.split(';');
    tu obtiens un tableau de tes différents champs puis sur chaque champ tu récupères les données de la même manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ma_valeur = champs[0].split('=')[1];

  9. #9
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Ah ou beaucoup plus simple sa
    Il me resterais qu'une question mais de type retorique

    Pourquoi j'y ait pas pensé moi meme a sa ???

    Merci beaucoup en tout cas.

  10. #10
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    voici un exemple d'utilisation des cookies (création, écriture, lecture, suppression).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] Lecture source page protégée
    Par MYster dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2006, 22h15
  2. [JSP]Cookies:creation et lecture
    Par Romain93 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 19/07/2006, 11h33
  3. [Cookies] problème de comprehension-sessions
    Par fk04 dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2006, 21h09
  4. Lecture de cookie à partir d'un autre site
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2006, 16h14
  5. [VB.NET] Problème lors de lecture de cookie
    Par Redouane dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/01/2005, 11h31

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