[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
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


0