JavaScript - [consulta]Contador de visitas con cookies

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

[consulta]Contador de visitas con cookies

Publicado por juan (1 intervención) el 31/07/2019 20:30:22
Buenas a todos, estoy intentando hacer un contador de visitas para mi web usando cookies, he encontrado codigos que funcionan pero no cumplen con una funcion clave que es que la cookie solo dure 24hs.

La cookie solo consta de un número el cual se incrementa con cada visita, el problema es que al modificar la cookie para sumarle un 1 a su valor, inevitablemente(segun lo poco que aun conozco) la fecha de expiracion tambien se actualiza, asi que aunque al crearla la defina con una duracion de 24hs la fecha se actualiza con cada visita y entonces nunca expira.

lo que pense como solucion es crear una segunda cookie que contenga como valor la fecha de expiracion que usaria la primer cookie cada vez que esta se actualiza, pero no logro hacerla funcionar, no tengo mucho conocimiento de javascript, me las arreglo con lo que se de lenguaje C, ayuda porfa

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//establece fecha de expiracion
function getexpirydate( nodays){
	var UTCstring;
	Today = new Date();
	nomilli=Date.parse(Today);
	Today.setTime(nomilli+nodays*24*60*60*1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}
//leer cookie
function getcookie(cookiename) {
	var	cookiestring=""+document.cookie;
	var	index1=cookiestring.indexOf(cookiename);
	if (index1==-1 || cookiename=="") return "";
	var	index2=cookiestring.indexOf(";",index1);
	if (index2==-1) index2=cookiestring.length;
	return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
//crear/modificar cookie
function setcookie(name,value,duration){
	cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration)+";path=/";
	document.cookie=cookiestring;
	if(!getcookie(name)){
		return false;
	}
	else{
		return true;
	}
}
//usa  la fecha de expiracion que otra cookie tiene como dato
function setcookie2(name,value,duration){
	cookiestring2=name+"="+escape(value)+";EXPIRES="+escape(duration)+";path=/";
	document.cookie=cookiestring2;
	if(!getcookie(name)){
		return false;
	}
	else{
		return true;
	}
}
 
 
 
count= getcookie("counter");
 
if(isNaN(count)){
	y=setcookie("counter",0,1);
	count=0;
}
 
//esto podria ponerlo en la llave de arriba pero para no mezclare por ahora lo dejo así
if(count==0){
	fecha=getexpirydate(10);
	x=setcookie("dias",fecha,4);
}
 
count++;
document.write("Visitaste esta pagina "+count+ " veces!!");
 
aux= getcookie("dias");
//si no comento esta linea todo deja de funcionar :(
//z=setcookie2("copia",hola,aux); 
 
y=setcookie("counter",count,1);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder