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 :

getCook + script de base IF pour redirection


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut getCook + script de base IF pour redirection
    Bonjour,

    Je cherche à créer un script javascript qui aurait la fonction suivant :

    si il y a un visiteur qui n'a pas le cookie appelé sonde : redirection vers une url (pas en popup)
    si il a le cookie avec une certaine valeur : rien ne se passe, le visiteur reste sur la page

    j'ai composé ceci avec ce que j'ai pu trouver sur le net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function setCook(sonde,0) {
            var expDate = new Date()
            expDate.setTime(expDate.getTime() + (100 * 24 * 3600 * 1000))
            document.cookie = sonde + "=" + escape(0)
                + ";expires=" + expDate.toGMTString()
            }
    function getCook(sonde) {
            deb = document.cookie.indexOf(sonde + "=")
            if (deb >=2)
    		{
            document.cookie = sonde + "=" + escape(3);
    		window.location='url';
            }          
    		}
    Mais il ne fonctionne pas du tout, loin de là ...
    Il est 1:16 et je suis dessus depuis 23:00

    Si c'est quelqu'un pouvait m'éclairer ...

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Par défaut
    Je suis pas un pro des cookie , mais , je crois que s'est du a :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expDate.setTime(expDate.getTime() + (100 * 24 * 3600 * 1000))
    Si j'ai bien compris , s'est expDate.getTime() ( avoir l'heure du pc )
    + (100 * 24 * 3600 * 1000)) (le temps en seconde )

    3600 = 1 H >> x24 H x 100x1000 = 100 000 jours

    Regarde sur fire fox , il a une bonne gession de cookie , mais n'oublie pas un cookie , chez le client , s'est un fichier texte ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut
    hormis ce fait je pense que le code qui suit celui qui crée le cookie est incorrect au niveau des conditions.

    Je pense que ceci devrait marcher :

    var nbJour = 100000;

    // Adresse de la page spéciale, elle peut s'écrire aussi de cette façon : http://www.monsite.com/page.htm
    var page = "page.htm";


    function GetCookie (name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
    return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
    }

    return null;
    }

    function SetCookie (name, value) {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;

    document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
    }

    function DeleteCookie (name) {
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = GetCookie (name);
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
    }

    var exp = new Date();
    exp.setTime(exp.getTime() + (nbJour*24*60*60*1000));

    function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
    endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
    }


    function verifNbOuverture() {
    var cpt = GetCookie('cpt');
    if (cpt == null) {
    cpt=2;
    SetCookie('cpt', cpt, exp);

    document.location.href(page)




    }
    else {
    cpt++;
    SetCookie('cpt', cpt, exp);
    }
    }

    verifNbOuverture();

    Si vous avez des idées d'optimisation n'hésitez pas

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/10/2007, 13h24
  2. [SGBD gratuite] base simple pour une appli minimale
    Par trollkipu dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 10/02/2006, 13h08
  3. [timer] Compte à rebours pour redirection !
    Par Raideman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2005, 20h07
  4. [TP7] Renvoyer des infos dans la console pour redirection
    Par Natopsi dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 05/11/2005, 18h21

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