下面的代码,24小时后为啥不重置?
我是要求:24小时之内到这页面,如果visits<=3,就显示ok。如果visits>3就显示stop。24小时后重新开始计算visits。
可是24小时之后,一直显示stop。在这24小时之内,多次到这页面访问,也要不影响代码统计:以第一次到这页面开始计算。请高手帮我看看。expdate.setTime(expdate.getTime()+(24*60*60*1000));if(!(visits=GetCookie("visits")))
visits=0;visits++;SetCookie("visits",visits,expdate,"/",null,false);if(visits<=3)
document.write("ok");
if(visits>3)
document.write("stop");

解决方案 »

  1.   


    if(!(visits=GetCookie("visits")))
    {
    visits=0;visits++;SetCookie("visits",visits,expdate,"/",null,false);
    }
      

  2.   


    SetCookie("visits",visits,expdate,"/",null,false);把这个方法贴出来
      

  3.   


    var str = objName + "=" + escape(objValue);
    var date = new Date();
    var ms = 24*3600*1000;
    date.setTime(date.getTime() + ms);
    str += "; expires=" + date.toGMTString();document.cookie = str;
      

  4.   

    请问楼上高手,加在何处?我的完整代码如下:

    function www_zhuatu_com(offset)
    {
    var endstr=document.cookie.indexOf(";",offset);if(endstr==-1)
    endstr=document.cookie.length;return unescape(document.cookie.substring(offset,endstr));}
    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 www_zhuatu_com(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=(2<argc)?argv[2]:null;
    var path=(3<argc)?argv[3]:null;
    var domain=(4<argc)?argv[4]:null;
    var secure=(5<argc)?argv[5]:false;
    document.cookie=name+"="+escape(value)+((expires==null)?"":("; expires="+expires.toGMTString()))+((path==null)?"":("; path="+path))+((domain==null)?"":("; domain="+domain))+((secure==true)?"; secure":"");
    }var expdate=new Date();
    var visits;if(!(visits=GetCookie("visits"))){
    visits=0;
    expdate.setTime(expdate.getTime()+(24*60*60*1000));
    SetCookie("visits",visits,expdate,"/",null,false);
    }visits++;
    if(visits<=3)
    document.write("ok");
    if(visits>3){
    document.write("stop");
      

  5.   

    你的代码挺混乱的,不知道何才为写cookie
    我上面贴的是写 cookie
    objName objValue  为 相应的名字以及值
      

  6.   

    [code=HTML]一静态页要在用户登录和没登录的不同状态显示不同信息.
    实现方法肯定是用js了.写了一js取cookie 的方法getCookie(name)
    通过"
    var u = getCookie(name);
    if (u) {
        x.innerHTML = u;
    } else {}方法实现一些信息不同显示
    x.innerHTML = u;
    目的就是在一处显示u这个cookie得到的信息,问题就出在这里
    这个cookie是通过php setcookie设置的,结果js取出的中文是乱码,页面为utf-8
    想了几点不是方法,如url编码都不行,最好想到我用js取,那也用js设置cookie不就好了,最好写一js的setCookie 函数
    代码大致如下
    <?php
    setcookie();//一些其它cookie
    echo '<script>setCookie ('xxx','中文')</script>';//要js取的cookie
    ?>
    function getCookieVal(offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if(endstr == -1) {
            endstr = document.cookie.length;
        }
        return unescape(document.cookie.substring(offset, endstr));
    }
    function getCookie(name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        var j = 0;
        while(i < clen) {
            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 deleteCookie(name) {
        var exp = new Date();  
        var cval = getCookie(name);  
        exp.setTime(exp.getTime() - 1);  
        document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
    }
    var gCookieExpDays = 80;
    function setCookie(name, value) {
        var argv = setCookie.arguments;
        var argc = setCookie.arguments.length;
        var exp = (argc > 2) ? argv[2] : gCookieExpDays;
        var path = (argc > 3) ? argv[3] : null;
        var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
        var expires = new Date();
        deleteCookie(name);
        expires.setTime(expires.getTime() + (exp*24*60*60*1000));
        document.cookie = name + "=" + value +
            "; expires=" + expires.toGMTString() +
            ((domain == null) ? "" : ("; domain=" + domain)) +
            ((path == null) ? "" : ("; path=" + path)) +
            ((secure == true) ? "; secure" : "");
    /code]
      

  7.   


    function SetCookie(name,value)SetCookie("visits",visits,expdate,"/",null,false);应该是这样里有问题 ,cookies的路径不对吧 楼上的高手们给的方法尝试一下
      

  8.   

    按照你目前的写法path是不是null阿  我觉得是这里的问题 ,你的cookie路径有问题 lz仔细看看