我在模板上做了个登录、自动登陆和退出的js功能代码,每当用户登录就会把登录名称和密码写入cookie里面,但是用户点退出,给cookie重新设置了过期时间(比当前时间要早的时间),但是我刷新页面后自动登陆还是取到cookie里面的值,进行登录!!??代码如下//自动登陆
function AutoLogin() {
var getLoginInfo=getCookie("loginInfo");
if(getLoginInfo!=null){
var loginInfo=getLoginInfo.split("&*&");
var sendData="userName="+loginInfo[0]+"&userPwd="+loginInfo[1];
var backMethod="UserLogin";
SendData(backMethod,sendData);//向后台发送登录信息
}
}
//退出登陆
function delCookie(name) {
var exp = new Date(); //当前时间
exp.setTime(exp.getTime() - 1000);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
SendData("Logout", "");//向后台注销登录信息
}
//保存用户登陆信息
function SetCookie(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒
document.cookie = name+ "="+escape(value);// + ";expires=" + exp.toGMTString();
}
//获取cookie登陆信息
function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null)
return unescape(arr[2]);
return null;
}
function AutoLogin() {
var getLoginInfo=getCookie("loginInfo");
if(getLoginInfo!=null){
var loginInfo=getLoginInfo.split("&*&");
var sendData="userName="+loginInfo[0]+"&userPwd="+loginInfo[1];
var backMethod="UserLogin";
SendData(backMethod,sendData);//向后台发送登录信息
}
}
//退出登陆
function delCookie(name) {
var exp = new Date(); //当前时间
exp.setTime(exp.getTime() - 1000);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
SendData("Logout", "");//向后台注销登录信息
}
//保存用户登陆信息
function SetCookie(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒
document.cookie = name+ "="+escape(value);// + ";expires=" + exp.toGMTString();
}
//获取cookie登陆信息
function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null)
return unescape(arr[2]);
return null;
}
解决方案 »
- 使用activex control test container 测试脚本,提示ms jscript编译错误
- js操作frameset的问题
- 一段超酷JS代码,帮忙看一下,谢!
- 急!急!急!字符串里回车的问题
- 关于document.body.clientHeight?
- 字符串替換問題
- 关于怎样的到xml值的一个问题~~
- 如何在打开公司网站同时链接打开一个新的网站?
- 没人回:答这个也行,div style里的position:absolute是绝对位置,有没有相对位置
- 【求助】【新手】javaweb注册功能
- 关于 Coolite Toolkit 开发大开型B/S项目
- html 通过js获取页面中所有的下拉框
//登陆请求处理
function Login() {
var userName=document.getElementById("txtLoginName");
var userPwd=document.getElementById("txtLoginPass");
if(userName.value==""){
alert("用户名不能为空!");
return false;
}
if(userPwd.value==""){
alert("请输入密码!");
return false;
}
var sendData="userName="+userName.value+"&userPwd="+userPwd.value;
var backMethod = "UserLogin";
SetCookie("loginInfo",userName.value+"&*&"+userPwd.value);
SendData(backMethod,sendData);
}
//登陆结果回调
function UserLogin(data){
var lognInfo=data.split("&*&");
if(lognInfo.length==2){
document.getElementById("WelcomeName").innerHTML=lognInfo[0];
document.getElementById("LoginDiv").style.display="none";
document.getElementById("LoginMessage").style.display="block";
}else{
alert(data);
}
}
//退出登陆
function delCookie(name) {
debugger
var exp = new Date(); //当前时间
exp.setTime(exp.getTime() - 1000);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
SendData("Logout", "");
}
//保存用户登陆信息
function SetCookie(name, value) {
debugger
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒
document.cookie = name+ "="+escape(value);// + ";expires=" + exp.toGMTString();
}
//获取cookie登陆信息
function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null)
return unescape(arr[2]);
return null;
}
//自动登陆
function AutoLogin() {
debugger
var getLoginInfo=getCookie("loginInfo");
if(getLoginInfo!=null){
var loginInfo=getLoginInfo.split("&*&");
var sendData="userName="+loginInfo[0]+"&userPwd="+loginInfo[1];
var backMethod="UserLogin";
SendData(backMethod, sendData);
} else {
SendData("IsSessionSavaLoginInfo",""); //防止客户端不支持cookie
}
}
//获取Session用户名和密码
function IsSessionSavaLoginInfo(data) {
if(data!="false"){
UserLogin(data)//获取登录成功处理信息
}
} $(document).ready(function(){AutoLogin();});
//样式控制脚本,隐藏层
function hideShow(){
document.getElementById("hidDiv").style.display="block";
}
function hideHide(){
document.getElementById("hidDiv").style.display="none";
}
//注销后台Session用户登录信息回调
function Logout(data){
if(data=="True"){
document.getElementById("WelcomeName").innerHTML="";
document.getElementById("txtLoginName").value="";
document.getElementById("txtLoginPass").value="";
document.getElementById("LoginDiv").style.display="block";
document.getElementById("LoginMessage").style.display = "none";
if (location.href.indexOf("UserInfo.aspx") > 0) {
// location.href = "../Index.aspx";
}
}else{
alert("服务失败!");
}
}
这啊:
//退出登陆
function delCookie(name) {
var exp = new Date(); //当前时间
exp.setTime(exp.getTime() - 1000);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
SendData("Logout", "");//向后台注销登录信息
}
问题解决了要这样写的:
//退出登陆
function delCookie(name) {
var exp = new Date(); //当前时间
exp.setTime(exp.getTime() - 1000);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=;path=/;expires=" + exp.toGMTString(); ;
SendData("Logout", "");
}
//保存用户登陆信息
function SetCookie(name, value) {
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒
document.cookie = name + "=" + escape(value) + ";path=/"; // + ";expires=" + exp.toGMTString();
}
原因是避免生成多个同名的cookie 感谢你们 结贴了