session一般也是有cookie保存的,只是它只保存一个ID,保存的变量什么的会在后在web服务器上保存,这样会安全一点.
你上面说的情况,应该使用session,session在一段时间后会失效,这样没有登录的信息后,再点击页面你就让它登录,如果时间段你就会有登录信息就不用登录了(说的有点麻烦不知道能不能听懂)
在不同的机子上会建议不同的session,这就是你说的问题

解决方案 »

  1.   

    哦,你说的我大概理解,就是说在要“页面操作一段时间后没有响应”的页面插入session失效代码。我的意思是在你的“鼠标不动”的一段时间内提示。不知道php有没有这种功能。有没有例子。我用了两个文件来实现这个功能一个是保存session信息,如下
     session_start();
              $_SESSION['userid']=$_POST["userid"];
       $_SESSION['username']=$_POST["username"];
              $_SESSION['groupid']=$myrow["groupid"];
             $time_last_load=time();
    一个是在要实现的也面添加判断是否没响应代码may.inc.代码如下:
    if(!isset($_SESSION['userid']))
        {   echo '你还没有登陆,请先登陆<a href="index.php">登录</a>!</body></html>';    }
    else
        {
        $time_now=time();
        //$time_last_load 为SESSION中注册的变量
        $time_interval=$time_now-$time_last_load;
        if($time_interval>6000)
            {
             session_destroy;
             echo '你的帐号闲置过久,请重新登陆<a href="index.php">登录</a>!</body></html>';        }
        $time_last_load=time();
        }
    可是我一登陆进去就提示“你的帐号闲置过久,请重新登陆”,怎么会这样?不是间隔是6000吗?
    插在页面的最前面与最后面都一样。
      

  2.   

    谁能知道我那上面的程序问题出在哪吗?
    我总感觉是出在这$time_interval>6000,已经是100分钟的时间限制。为什么一登陆进去就提示“你的帐号闲置过久,请重新登陆”?
    真是百思不得其解啊?
      

  3.   

    $time_last_load没有值,把这个变量也注册成session变量
      

  4.   

    有啊,$time_last_load=time(),就是一登陆进去就记录时间的。
      

  5.   

    print_r($time_last_load)看看没有内容,如果你上边的是两个问题,那当调用第二个文件的时候 $time_last_load已经没有值了,调用session_start()函数之后$time_last_load =$_SESSION['time_last_load'],如果你是把这个保存在session变量里边的。
      

  6.   

    session_start();
    $_SESSION['userid']=$_POST["userid"];
    $_SESSION['username']=$_POST["username"];
    $_SESSION['groupid']=$myrow["groupid"];
    $time_last_load=time();
    -------------------------------------------------------------------------
    这个方法好像是不行的,session的数值在php中是不能直接操作的,请注意这个。当读取酒坛没有这样的限制了