我现在有个别人写的网站    在登陆时候他是这么设置session的  
session_register("username");
session_register("password");
session_register("lang_type");if(isset($_POST["txtusername"])){
$_SESSION['username']=$_POST["txtusername"];
$_SESSION['password']=$_POST["txtpassword"];
}else{
$username=$_SESSION['username'];
$password=$_SESSION['password'];
$lang_type=$_SESSION['lang_type'];
}
session_register("username");
session_register("password");
session_register("lang_type");
我现在登陆以后关闭浏览器,session不失效。下次打开直接就跳到登陆后页面了
只有用户登陆后点"注销"session才会没
注销页面代码是这样的
error_reporting(0);
session_start(); 
session_unset();
session_destroy(); 我想实现关闭浏览器自动清除session

解决方案 »

  1.   

    在windows关闭的事件中加
    <?
    session_destroy(); 
    ?>
      

  2.   

    什么意思啊 ?  用cookie怎么清除sessin呢?   还是让我用cookie代替sesison么?
     这网站有session的页面起码在30左右。 都该会很麻烦啊
      

  3.   


    function createRequest(){
        var request;
        if(window.XMLHttpRequest){ // For Mozilla, Safari, ...
            request = new XMLHttpRequest();
        } else if(window.ActiveXObject){ // For Internet Explorer
            request = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return request;
    }
    function window.onunload(){
     var ajax=createRequest();
     var url = "dsession.php";
        ajax.open("GET",url,true);
        ajax.onreadystatechange = function () {
            if (ajax.readyState == 4 && ajax.status==200) {
                    kk(ajax.responseText);
            }
        }
        ajax.send(null);
    }
    function kk(str){
      if(str=='ok'){
      alert("session注销拉!");
    }
    }
    dsession.php$rs=session_destory();
    if($rs){
    echo "ok";
    }else{
    echo"no";
    }
      

  4.   

    关闭浏览器调用AJAX注销session
      

  5.   

    我把代码放到哪里呢 ?   登陆页面的PHP 文件中还是JS里面呢 。
      

  6.   

      你这个方法确实可以消除session,可是我页面不能正常登陆了。 
      

  7.   

     我把你这段代码放到首页,也就是有登陆的页面了、 
    他就把我的session都清空了,  因为我别的页面是用sesion记录了用户姓名的。 其实我这个网站原来是给用户做了限制的,  一个用户同一时间只可以登陆一次。 在登陆的时候在数据库改了一个字段。    退出登陆在还原的。
    比如数据库有个login字段  用户注册的时候默认为  T   ,用户登陆后更新这个个字段改为F 。
    当用户登陆的时候做判断,如果login==T,则可以登陆的。如果为F不能登陆。 
     我现在就是想如果用户关闭浏览器,则注销session。并且更新数据库login字段F改回T  、
     
    dzxccsu  在这里我非常感谢您! 
      

  8.   

    原来是有个“注销”页的, 注销的时候清除session,把F改回T   。 
    但原来的弊端是,当用户忘记注销的时候他下次就不能登陆了。  还得管理员在后台改 ~!
      

  9.   

    你可以在$update="update tables set state='T' where id='用户ID'";//update一下就可以
    $rs=session_destory();
    if($rs){
    echo "ok";
    }else{
    echo"no";
    }