Posez votre question Signaler

Javascript et cookies ?

help me - Dernière réponse le 20 août 2009 à 01:25
Bonjour,
j utilise ce script pour afficher une page des news une fois par semaine pour chaque visiteur unique .
comment je peux modifie ce script pour afficher les news 2 fois par semaine pour chaque visiteur unique ?
voici le script . merci de votre aide
<SCRIPT LANGUAGE="JavaScript">
var nbJour =7; 
var page = "News.html";

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();

</script>
Lire la suite 

Javascript et cookies »

3 réponses
Réponse
+0
moins plus
Dis-moi, c'est du script de la vieille école que tu nous as trouvé là :p

Sans regarder, je dirais que la solution à ton problème se trouve à la première ligne de ton code. une variable qui s’appelle nbJours et qui est égale à 7, dans un script qui renouvelle un cookie tous les sept jours, hmm, tiens, doit y avoir un truc…

En regardant un peu mieux j’ai l’impression qu’il manque quelque chose, mais ce n’est peut-être qu’une impression.

Si tu ne trouves pas solution à ton problème, j’y regarderai d’un peu plus près ;)
help me - 19 août 2009 à 23:40
bonjour
oui var nbJour =7; c est pour que le cookies reste 7 jour au navigateur du visiteur pour pas a chaque fois qui visite
mon site la fenetre de news s ouvre :)
donc je veut que la page news s ouvre 2 fois par semaine , meme au meme journer ,apres le visiteur doit attendre 7 jours pour qu'il puis regarder les nouveaux news .
merci d avance
Ajouter un commentaire
Réponse
+0
moins plus
C’est toi qui as fait le code ? Ça ressemble à du C* ou du Java (le « return null » ou encore la gestion pour ainsi dire particulière des arguments dans Setcookie). Comme dirait Christophe Porteneuve, et sans vouloir vexer qui que ce soit (^^), « à vouloir écrire du Java comme on faisait du C++, on ne produit que du mauvais Java ». Surtout ne le prends pas mal, je suis d’humeur sarcastique ce soir… Sinon, je disais vieille école à cause des balises en majuscules et de l’attribut langage qui est déprécié (à la place il faut mettre type="text/javascript" pour satisfaire à la norme MIME).

Enfin bref, j’avais pas compris ta question, je croyais que tu voulais doubler la fréquence des news (genre passer nbJours à 3 ou 4).

Bien. Pour ton problème, j’ai envie de dire : cpt-- à la place de cpt++ dans la fonction verifNbOuverture, et un test if(cpt > 0) qui autorise l’accès aux news (j’imagine que le « document.location.href = page » conduit aux news).

J’espère que je me gourre pas ;)
Ajouter un commentaire
Ce document intitulé « javascript et cookies ? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?