我现在有个别人写的网站 在登陆时候他是这么设置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
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
<?
session_destroy();
?>
这网站有session的页面起码在30左右。 都该会很麻烦啊
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";
}
他就把我的session都清空了, 因为我别的页面是用sesion记录了用户姓名的。 其实我这个网站原来是给用户做了限制的, 一个用户同一时间只可以登陆一次。 在登陆的时候在数据库改了一个字段。 退出登陆在还原的。
比如数据库有个login字段 用户注册的时候默认为 T ,用户登陆后更新这个个字段改为F 。
当用户登陆的时候做判断,如果login==T,则可以登陆的。如果为F不能登陆。
我现在就是想如果用户关闭浏览器,则注销session。并且更新数据库login字段F改回T 、
dzxccsu 在这里我非常感谢您!
但原来的弊端是,当用户忘记注销的时候他下次就不能登陆了。 还得管理员在后台改 ~!
$rs=session_destory();
if($rs){
echo "ok";
}else{
echo"no";
}