我们都知道要很好的对动网进行整合,就必须能够在全站读得Cookies的值,要读到它首先必须搞懂它的Cookies设置方式,动网在每次用户登录时都会更新数据库dv_setup里字段Forum_CookiesPath的值,这个值的取得的算法在login.asp里有,它是一个相对路径,然后获取此站点路径下的相应的Cookies,如username,userclass,因此,你只有论坛的目录下的代码才能读取客户端论坛的Cookies,如果要在其它的地方读取,怎么办呢?
下面是动网Login.asp 里关于Cookies 的设置算法:
<%
'判断更新cookies目录
Dim cookies_path_s,cookies_path_d,cookies_path
cookies_path_s=split(Request.ServerVariables("PATH_INFO"),"/")
cookies_path_d=ubound(cookies_path_s)
cookies_path="/"
For i=1 to cookies_path_d-1
If not (cookies_path_s(i)="upload" or cookies_path_s(i)="admin") Then cookies_path=cookies_path&cookies_path_s(i)&"/"
Next
If dvbbs.cookiepath<>cookies_path Then
cookies_path=replace(cookies_path,"'","")
Dvbbs.execute("update dv_setup set Forum_Cookiespath='"&cookies_path&"'")
Dim setupData
Dvbbs.CacheData(26,0)=cookies_path
Dvbbs.Name="setup"
Dvbbs.value=Dvbbs.CacheData
End If
%>
实现动网cookies全站通用并且退出也是全站通用:
必须修改三个文件:
①打开inc/Dv_ClsMain.asp
寻找 Response.Cookies(Forum_sn).path=cookiepath
应该共有1个
替换为:
Response.Cookies(Forum_sn).path="/"
② 打开login.asp
寻找 Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath
应该共有3个,其中一个是:Response.Cookies(Dvbbs.Forum_sn).path = Dvbbs.cookiepath(等号两旁有空格)
替换为:
Response.Cookies(Dvbbs.Forum_sn).path="/"
③ 打开logout.asp
寻找 Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath 第26行
应该只有一个
替换为:
Response.Cookies(Dvbbs.Forum_sn).path="/"
于是在任意目录中构建页面读取皆为可能
呵呵,到了这里
就可以调用了....
<!--#include file="bbs/Conn.asp"-->
<!--#include file="bbs/inc/const.asp"-->
request.Cookies(Dvbbs.Forum_sn)("username") 用户名
密码,id都可以全站通用了....