Dvbbs8.1整合后无法同步登录解决方法
编辑:dnawo 日期:2008-01-16
使用"个人网站与动网整合步骤(支持PDO1.0)"中的会员系统整合Dvbbs7.1和8.0均能成功,但整合Dvbbs8.1时发现一个问题:从论坛中登录时论坛可以登录成功但会员系统中却没登录成功。会员系统肯定没问题,那问题就该在论坛上了,于是查看了登录相关函数(login.asp中Dvbbs_ChkLogin函数),下边是部分代码:
上边红色部分在Dvbbs7.1和8.0均没有,是Dvbbs8.1新加上去的,问题就出现在它身上!按《PDO通行接口开发人员参考规范1.0》4.3节中说明:
发送请求方解析检验方返回的xml数据说明可以登陆成功时,则应当构造一个script脚本调用,输出到页面的HTML代码。 当password为空表示注销COOKIE信息。
上边代码中蓝色部分就是输出script脚本的,但由于红色代码的存在,导致这个构造的script脚本没有输出到页面,导致从论坛上登录不成功!这也是为什么论坛登录成功了但会员系统却没登录成功!解决方法是:去掉上边代码红色部分!
复制内容到剪贴板
程序代码

Dim comeurlname
If instr(lcase(request("comeurl")),"reg.asp")>0 or instr(lcase(request("comeurl")),"login.asp")>0 or trim(request("comeurl"))="" or instr(lcase(request("comeurl")),"index.asp")>0 Then
comeurlname=""
If isUrlreWrite = 1 Then
Comeurl="index.html"
Else
comeurl="index.asp"
End If
Else
comeurl=request("comeurl")
comeurlname="<li><a href="&request("comeurl")&">"&request("comeurl")&"</a></li>"
End If
If comeurl = "index.asp" Then
Response.Redirect "index.asp"
Response.End
End If
Dim TempStr
TempStr = template.html(2)
'If Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1 And Dvbbs.Forum_ChanSetting(12)=1 Then
' TempStr = Replace(TempStr,"{$ray_logininfo}",template.html(3))
'Else
' TempStr = Replace(TempStr,"{$ray_logininfo}","")
'End If
'-----------------------------------------------------------------
'系统整合
'-----------------------------------------------------------------
If DvApi_Enable Then
Response.Write DvApi_SaveCookie
Response.Flush
End If
'-----------------------------------------------------------------
If instr(lcase(request("comeurl")),"reg.asp")>0 or instr(lcase(request("comeurl")),"login.asp")>0 or trim(request("comeurl"))="" or instr(lcase(request("comeurl")),"index.asp")>0 Then
comeurlname=""
If isUrlreWrite = 1 Then
Comeurl="index.html"
Else
comeurl="index.asp"
End If
Else
comeurl=request("comeurl")
comeurlname="<li><a href="&request("comeurl")&">"&request("comeurl")&"</a></li>"
End If
If comeurl = "index.asp" Then
Response.Redirect "index.asp"
Response.End
End If
Dim TempStr
TempStr = template.html(2)
'If Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1 And Dvbbs.Forum_ChanSetting(12)=1 Then
' TempStr = Replace(TempStr,"{$ray_logininfo}",template.html(3))
'Else
' TempStr = Replace(TempStr,"{$ray_logininfo}","")
'End If
'-----------------------------------------------------------------
'系统整合
'-----------------------------------------------------------------
If DvApi_Enable Then
Response.Write DvApi_SaveCookie
Response.Flush
End If
'-----------------------------------------------------------------
上边红色部分在Dvbbs7.1和8.0均没有,是Dvbbs8.1新加上去的,问题就出现在它身上!按《PDO通行接口开发人员参考规范1.0》4.3节中说明:
发送请求方解析检验方返回的xml数据说明可以登陆成功时,则应当构造一个script脚本调用,输出到页面的HTML代码。 当password为空表示注销COOKIE信息。
上边代码中蓝色部分就是输出script脚本的,但由于红色代码的存在,导致这个构造的script脚本没有输出到页面,导致从论坛上登录不成功!这也是为什么论坛登录成功了但会员系统却没登录成功!解决方法是:去掉上边代码红色部分!






评论: 1 | 引用: 0 | 查看次数: 5089





强哥.真的很快..



发表评论
请登录后再发表评论!