本帖最后由 Emily070 于 2009-07-29 13:45:41 编辑

解决方案 »

  1.   

    设置 session.cookie_lifetime = 0值为0 表示关闭浏览器,sessionid失效
      

  2.   

    就是echo $_SESSION['welcome_admin'];返回的是空值啊
      

  3.   

    我的看法:
    select start from zixun_admin where zixun_admin_user='$welcome_admin'
    你既然写了返回字段为"start" ,那$row['welcome_admin']怎么会有值呢?
    你应该用$row['start ']或者$row[0]来取数据吧
    你可以在if语句上面加一句 print_r($row);
    可以得出[0]=>xxxx,[start]=>xxxx
    $row['welcome_admin']当然不会有值,而且php应该抛出error提示$row['welcome_admin']为Undefined的index
      

  4.   

    我以前是这样处理的:
    设置一个常量 define("TIMEOUT",20*60);
    在session中设置一个last_modified变量,每次页面打开时都用当前时间与last_modified相比,如果超出TIMEOUT值,那么把last_modified变量注销,并将页面带到登录页面,提示已经超时;如果不超时,那么把当前时间替代原有的last_modified值。希望对你有所启发。
      

  5.   

    只好粘在这了 不知道这次大家能不能看明白呢
    最近的一个小问题,就是是网站过20分钟不操作就提示帐号过期。我刚接触php 看了几遍手册 但还是不懂 希望有朋友能指导一下 只要能解决网站20分钟不操作就退出这个问题 不管是iis设置、php.ini设置还是程序代码都可以(我能想到的就这三个地方) 请大家帮我想想到底是什么原因会这样 我的服务器是win2003系统 前几天重新分区之后出现的这个问题  我加了echo $_SESSION['welcome_admin'];语句 但没有返回值 。select start是以$welcome_admin'为条件查询的,返回值不应该是空的 我想给他赋值 (红色部分),但是这样不对下面是提示帐号过期的代码:  function welcome(){
    global $welcome_admin;
    $sql="select start from zixun_admin where zixun_admin_user='$welcome_admin'";
    $result=@mysql_query($sql);
    $row=@mysql_fetch_array($result);
    if($row['welcome_admin'] != $_SESSION['welcome_admin']) 

    $_SESSION['welcome_admin'] = $row['welcome_admin']; 

    if(!mysql_num_rows($result)){echo $_SESSION['welcome_admin'];/测试没有返回值
    echo "<script>alert(\"帐号已经过期,请重新登陆\");
    window.location='/login.php';
    </script>";
    exit;
    }
    return(true);
    }