AJAX登录并增加选择COOKIES保存时限功能(9/27增加是否换IP保存登录)

注意,请不要用记事本编辑,修改前请做好备份。
分别打开header.asp和Template/static.htm,分别找到:
        <script type="text/javascript" src="common/common.js"></script>

分别在上面插入一行:
    <script type="text/javascript" src="common/ajax.js"></script>


打开common/library.asp,找到:
Function userPanel()
    userPanel = ""
    If memName<>Empty Then userPanel = userPanel&" <b>"&memName&"</b>,欢迎你!<br/>你的权限: "&stat_title&"<br/><br/>"
    If stat_Admin = True Then userPanel = userPanel + "<a href=""control.asp"" target=""_blank"" class=""sideA"" accesskey=""3"">系统管理</a>"
    If stat_AddAll = True or stat_Add = True Then userPanel = userPanel + "<a href=""blogpost.asp"" class=""sideA"" accesskey=""N"">发表新日志</a>"
    If (stat_AddAll = True or stat_Add = True) And (stat_EditAll or stat_Edit) Then
        If IsEmpty(session(CookieName&"_draft_"&memName)) Then
            session(CookieName&"_draft_"&memName) = conn.Execute("select count(log_ID) from blog_Content where log_Author='"&memName&"' and log_IsDraft=true")(0)
            SQLQueryNums = SQLQueryNums + 1
        End If
        If session(CookieName&"_draft_"&memName)>0 Then
            userPanel = userPanel + "<a href=""default.asp?display=draft"" class=""sideA"" accesskey=""D""><strong>编辑草稿 ["&session(CookieName&"_draft_"&memName)&"]</strong></a>"
        Else
            userPanel = userPanel + "<a href=""default.asp?display=draft"" class=""sideA"" accesskey=""D"">编辑草稿</a>"
        End If
    End If
    If memName<>Empty Then
        userPanel = userPanel&"<a href=""member.asp?action=edit"" class=""sideA"" accesskey=""M"">修改个人资料</a><a href=""login.asp?action=logout"" class=""sideA"" accesskey=""Q"">退出系统</a>"
    Else
        userPanel = userPanel&"<a href=""login.asp"" class=""sideA"" accesskey=""L"">登录</a><a href=""register.asp"" class=""sideA"" accesskey=""U"">用户注册</a>"
    End If
End Function


全部修改为:
Function userPanel()
    userPanel = ""
    If memName<>Empty Then userPanel = userPanel&" <b>"&memName&"</b>,欢迎你!<br/>你的权限: "&stat_title&"<br/><br/>"
    If stat_Admin = True Then userPanel = userPanel + "<a href=""control.asp"" target=""_blank"" class=""sideA"" accesskey=""3"">系统管理</a>"
    If stat_AddAll = True or stat_Add = True Then userPanel = userPanel + "<a href=""blogpost.asp"" class=""sideA"" accesskey=""N"">发表新日志</a>"
    If (stat_AddAll = True or stat_Add = True) And (stat_EditAll or stat_Edit) Then
        If IsEmpty(session(CookieName&"_draft_"&memName)) Then
            session(CookieName&"_draft_"&memName) = conn.Execute("select count(log_ID) from blog_Content where log_Author='"&memName&"' and log_IsDraft=true")(0)
            SQLQueryNums = SQLQueryNums + 1
        End If
        If session(CookieName&"_draft_"&memName)>0 Then
            userPanel = userPanel + "<a href=""default.asp?display=draft"" class=""sideA"" accesskey=""D""><strong>编辑草稿 ["&session(CookieName&"_draft_"&memName)&"]</strong></a>"
        Else
            userPanel = userPanel + "<a href=""default.asp?display=draft"" class=""sideA"" accesskey=""D"">编辑草稿</a>"
        End If
    End If
    If memName<>Empty Then
        userPanel = userPanel&"<a href=""member.asp?action=edit"" class=""sideA"" accesskey=""M"">修改个人资料</a><a href=""JavaScript:void(0);"" onclick=""AJAXLogout()"" class=""sideA"" accesskey=""Q"">退出系统</a>"
    Else
      userPanel=userPanel&"<label><b>用户名︰</b><input type=""text"" id=""AJAXLoginUserName"" class=""userpass"" size=""12""/></label><br/><label><B>密 码︰</B><input type=""password"" id=""AJAXLoginPassword"" class=""userpass"" size=""12""/></label><br/><label><B>保 存︰</B></label><select size=""1"" id=""AJAXKeepLogin""><option selected=""selected"" value=""0"">不保存</option><option value=""1"">一天</option><option value=""7"">一星期</option><option value=""30"">一个月</option><option value=""365"">一年</option></select><p/><center><a href=""JavaScript:void(0);"" onclick=""AJAXLogin();"" accesskey=""L"">登录</a>  <a href=""register.asp"" accesskey=""U"">用户注册</a></center><br /><span id=""AJAXMsg"" style=""font-weight:bold;color:#FF0000;""></span>"
      
    End If
End Function


打开common/checkuser.asp,找到:
            If Request.Form("KeepLogin") = "1" Then Response.Cookies(CookieName).Expires = Date+365


注意:有两处,全部修改为:
            If int(Request.Form("AJAXKeepLogin")) > 0 Then
                Response.Cookies(CookieName).Expires = Date+int(Request.Form("AJAXKeepLogin"))
                Response.Cookies(CookieName)("exp") = DateAdd("d", int(Request.Form("AJAXKeepLogin")), date())
            End If

找到:(更换IP后如果需要继续保存登录修改下面部分,否则跳过。)
            If CheckCookie("mem_LastIP")<>Guest_IP or IsNull(CheckCookie("mem_LastIP")) Then
                logout(True)
            Else
                memName = CheckStr(Request.Cookies(CookieName)("memName"))
                memStatus = CheckCookie("mem_Status")
            End If


替换为:
'            If CheckCookie("mem_LastIP")<>Guest_IP or IsNull(CheckCookie("mem_LastIP")) Then
'                logout(True)
'            Else
                memName = CheckStr(Request.Cookies(CookieName)("memName"))
                memStatus = CheckCookie("mem_Status")
'            End If


打开common/cache.asp,找到:
    Response.Cookies(CookieName)("memRight") = StatusCode

替换为:
    Response.Cookies(CookieName)("memRight") = StatusCode
    If Request.Cookies(CookieName)("exp")<>"" Then
        Response.Cookies(CookieName).Expires = Date + DateDiff("d",Date(),Request.Cookies(CookieName)("exp"))
    End If


打开login.asp,找到:
         <label><input name="KeepLogin" type="checkbox" value="1"/>记住我的登录信息</label><br/>


修改成:
<label>保 存:<select size="1" id="AJAXKeepLogin"><option selected="selected" value="0">不保存</option><option value="1">一天</option><option value="7">一星期</option><option value="30">一个月</option><option value="365">一年</option></select></label><br />


下载压缩包,解压至博客根目录








下载文件 点击下载此文件


[本日志由 小戒 于 2008-09-27 11:34 AM 编辑]
上一篇: 解决PJBLOG3的登录BUG(不能保存COOKIE)(9/27增加是否换IP保存登录)
下一篇: 批量修改文件名防止新云系统盗链
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ajax cookies 登录 PJBLOG
相关日志:
评论: 10 | 引用: 0 | 查看次数: -
zero
回复回复zero[2009-01-11 09:51 PM | | | del]
技术信息(用于支持人员)

错误类型:
Microsoft VBScript 编译器错误 (0x800A03F6)
缺少 'End'
/common/checkUser.asp, line 92
Else


浏览器类型:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; WPS; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; InfoPath.1; MAXTHON 2.0)

网页:
GET /Default.asp

时间:
11 January 2009, 21:48:52


详细信息:
在这试试
回复回复在这试试[2008-12-09 10:24 AM | | | del]
咋你的可以类
小木
回复回复小木[2008-11-22 10:17 PM | | | del]
是以前就不能登陆后台的..

不是戒哥代码的问题..
小木
回复回复小木[2008-11-01 09:35 AM | | | del]
解决是解决了..

现在后台不能登陆了..
回复来自 小戒 的评论 小戒 于 2008-11-01 09:59 PM 回复
后台怎么不能登录?这里的修改没涉及到后台啊。
小木
回复回复小木[2008-11-01 08:46 AM | | | del]
试试这个没有验证码的看看哈...

小木
回复回复小木[2008-11-01 08:44 AM | | | del]
郁闷啊..

不知道是不是修改太多了..

博客现在输入验证码都是提示错误...

郁闷啊..

好几天都没有更新了..

我试试戒哥的这个方法...
fantasyjj
回复回复fantasyjj[2008-10-18 00:49 AM | | | del]
修改失败。。。服务器500错误。。。汗
回复来自 小戒 的评论 小戒 于 2008-10-18 11:03 AM 回复
很多人都成功了噢。仔细对照着修改。
5ijoy
回复回复5ijoy[2008-10-05 01:31 AM | | | del]
呵呵,
我使用了
很长时间来一直寻找好东西啊,
我的博客一直有问题:在公司固定IP的局域网上登陆没问题,在家里是ADSL的局域网上却老是明明显示登陆了,自动返回到首页又是没登陆状态,这个毛病总算解决了啊!!!!
回复来自 小戒 的评论 小戒 于 2008-10-05 11:15 AM 回复
呵呵。
潇世
回复回复潇世[2008-09-28 06:20 PM | | | del]
博主  你好  
能不能把验证码
再加到这个  无刷新 登录里面?
谢谢
xsleaf@126.com

回复来自 小戒 的评论 小戒 于 2008-09-28 11:07 PM 回复
比较麻烦,这样在评论和登录时第一次都会产生验证码错误的问题。会冲突的。
潇世
回复回复潇世[2008-09-27 04:02 PM | | | del]
压缩包里的 ajax.js  文件
需要另存一下  为utf-8 格式的  才能正常使用
否则  会出现乱码
回复来自 小戒 的评论 小戒 于 2008-09-27 10:59 PM 回复
恩。是的。谢谢提醒,已经更改了。重新下载就好了。
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.