Si un sitio web personal tiene un módulo de registro de miembros + Foro Dongwang, no será fácil integrar el sitio web con el sistema Foro Dongwang para lograr la actualización sincronizada de la información del usuario, el inicio de sesión y otras operaciones entre diferentes sistemas web. Aunque Dongwang lo ha proporcionado. Una guía detallada para desarrolladores de la interfaz API del sistema Dongwang Forum, pero un novato como yo no puede entenderla por un tiempo, lo siento. No estoy dispuesto a ceder, después de algunas investigaciones y pruebas sobre sus funciones de inicio de sesión, verificación y otras, finalmente logré cierto éxito. Los novatos también tienen métodos para novatos:
La versión del foro para esta prueba es la Versión 7.1.0 Sp1 y no se han probado otras versiones.
1. Estructura de archivos del sitio web
wwwroot
┝index.asp
┝ ComprobarUserLogin.asp
┕bbs/
2. Principio de integración
No es difícil implementar actualizaciones sincrónicas. El principal problema con la integración es el inicio de sesión sincrónico, por lo que nos centraremos en discutir cómo lograr el inicio de sesión sincrónico. Mi método es integrar la tabla de usuarios del sitio principal en la tabla de usuarios de Dongwang Dv_User (para evitar el problema de actualizar dos bibliotecas en el futuro. Puede agregar campos a Dv_User según sea necesario y modificar bbs/login.asp y bbs/inc). Realice las modificaciones apropiadas en /Dv_ClsMain.asp; al iniciar sesión, envíe el formulario a bbs/login.asp para su verificación; el sitio principal determina si el inicio de sesión fue exitoso en función de la información registrada en la sesión después de iniciar sesión exitosamente en Dongwang. información del usuario.
3. Agregar nuevos archivos modificados
1.código index.asp:
<html>
<cabeza>
<meta http-equiv=Tipo de contenido content=text/html charset=gb2312 />
<title>Integración de sitio web personal y red dinámica (www.mzwu.com)</title>
</cabeza>
<cuerpo>
<!--#include file=CheckUserLogin.asp -->
<%
Si CheckUserLogin entonces
Response.write(<a href=bbs/logout.asp?back=1>Cerrar sesión</a><p></p>)
Response.write(nombre de usuario: & Solicitud.Cookies(nombre de usuario) & <br>)
Response.write(Género: & Solicitud.Cookies(sexo) & <br>)
Response.write(Hora de registro: & Solicitud.Cookies(fecha de unión) & <br>)
Response.write(último inicio de sesión: & Solicitud.Cookies(último inicio de sesión) & <br>)
Response.write(número de inicios de sesión: & Request.Cookies(inicios de sesión de usuario) & <br>)
Response.write(tipo de navegador: & Solicitud.Cookies(navegador) & <br>)
Response.write(versión del navegador: & Request.Cookies(versión) & <br>)
Response.write(sistema operativo: & Request.Cookies(plataforma) & <br>)
Demás
%>
<ID del formulario=nombre del formulario1=método del formulario1=acción posterior=bbs/login.asp?action=chk&back=1>
nombre de usuario:
<nombre de entrada=tipo de nombre de usuario=id de texto=tamaño del nombre de usuario=10 />
<br />
contraseña:
<nombre de entrada=tipo de contraseña=id de contraseña=tamaño de contraseña=10 />
<tipo de entrada=enviar nombre=Enviar valor=Iniciar sesión/>
</formulario>
<%
terminar si
%>
<p></p><a href=bbs/>Entra al foro</a>
</cuerpo>
</html>
2.Compruebe el código UserLogin.asp:
<!--#Include File=bbs/inc/Dv_ClsMain.asp-->
<%
Función CheckUserLogin()
Atenuar Dvbbs, sesión de usuario
Versión constante Msxml = .3.0
Establecer Dvbbs = Nuevo Cls_Forum
Establecer UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument& MsxmlVersion)
Si UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) Entonces
Si UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 Entonces
'Inicié sesión exitosamente en el foro
CheckUserLogin = Verdadero
'A continuación se explica cómo obtener cierta información del usuario. Puede guardarla en Cookies o Sesión para facilitar su uso:
'ID de usuario: UserSession.documentElement.selectSingleNode(userinfo/@userid).text
'Nombre de usuario: UserSession.documentElement.selectSingleNode(userinfo/@username).text
'Cumpleaños: UserSession.documentElement.selectSingleNode(userinfo/@userbirthday).text
'Correo electrónico: UserSession.documentElement.selectSingleNode(userinfo/@useremail).text
'Género: UserSession.documentElement.selectSingleNode(userinfo/@usersex).text '0 es femenino, 1 es masculino
'Hora de registro: UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
'Último inicio de sesión: UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
'Número de inicios de sesión: UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
'Dinero: UserSession.documentElement.selectSingleNode(userinfo/@userwealth).text
'Puntos: UserSession.documentElement.selectSingleNode(userinfo/@userep).text
'Acceso: UserSession.documentElement.selectSingleNode(userinfo/@usercp).text
'Última IP de inicio de sesión: UserSession.documentElement.selectSingleNode(userinfo/@userlastip).text
'Tipo de navegador: UserSession.documentElement.selectSingleNode(agent/@browser).text
'Versión del navegador: UserSession.documentElement.selectSingleNode(agent/@version).text
'Sistema operativo: UserSession.documentElement.selectSingleNode(agent/@platform).text
'IP visitante: UserSession.documentElement.selectSingleNode(agent/@ip).text
'Aplicación de ejemplo:
Response.Cookies(nombre de usuario) = UserSession.documentElement.selectSingleNode(userinfo/@username).text
Response.Cookies(joindate) = UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
Si UserSession.documentElement.selectSingleNode(userinfo/@usersex).text=0 Entonces
Respuesta.Cookies(sexo) = chica bonita
Demás
Respuesta.Cookies(sexo) = hermano genial
terminar si
Response.Cookies(último inicio de sesión) = UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
Response.Cookies(userlogins) = UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
Response.Cookies(navegador) = UserSession.documentElement.selectSingleNode(agent/@browser).text
Response.Cookies(versión) = UserSession.documentElement.selectSingleNode(agent/@version).text
Response.Cookies(plataforma) = UserSession.documentElement.selectSingleNode(agent/@platform).text
Demás
'He visitado el foro pero no he iniciado sesión, por lo que es un estado de invitado
CheckUserLogin = Falso
terminar si
Demás
'No he visitado el foro
CheckUserLogin = Falso
terminar si
Establecer sesión de usuario = nada
Establecer Dvbbs = nada
Función final
%>
3. Se agrega una nueva parte roja a bbs/login.asp para que aún pueda regresar a la página de inicio después de iniciar sesión exitosamente en la página de inicio del sitio:
nombre de comeurl oscuro
Si instr(lcase(request(comeurl)),reg.asp)>0 o instr(lcase(request(comeurl)),login.asp)>0 o trim(request(comeurl))= Entonces
nombrecomurl=
comeurl=index.asp
Demás
comeurl=solicitud(comeurl)
comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
Terminar si
Si solicitud (atrás) = 1 Entonces
Respuesta.Redirect(../index.asp)
Terminar si
TempStr tenue
TempStr = plantilla.html(2)
'Si Dvbbs.Forum_ChanSetting(0)=1 y Dvbbs.Forum_ChanSetting(10)=1 y Dvbbs.Forum_ChanSetting(12)=1 entonces
' TempStr = Reemplazar(TempStr,{$ray_logininfo},template.html(3))
'Demás
' TempStr = Reemplazar(TempStr,{$ray_logininfo},)
'Finalizar si
'------------------------------------------------ - ---------------
'Integración del sistema
'------------------------------------------------ - ---------------
Si DvApi_Enable entonces
Respuesta.Escribir DvApi_SaveCookie
Respuesta.Flush
Terminar si
'------------------------------------------------ - ---------------
TempStr = Reemplazar(TempStr,{$ray_logininfo},)
TempStr = Reemplazar(TempStr,{$comeurl},comeurl)
TempStr = Reemplazar(TempStr,{$comeurlinfo},comeurlname)
TempStr = Reemplazar(TempStr,{$forumname},Dvbbs.Forum_Info(0))
Respuesta.Escribir TempStr
TempStr=
Función final
4. Se agregó una nueva parte roja a bbs/logout.asp para que aún pueda regresar a la página de inicio después de cerrar sesión en la página de inicio del sitio:
'------------------------------------------------ - ---------------
'Integración del sistema
'------------------------------------------------ - ---------------
Dim DvApi_Obj,DvApi_SaveCookie,SysKey
Si DvApi_Enable entonces
Md5VIEJO = 1
SysKey = Md5(Dvbbs.MemberName&DvApi_SysKey,16)
Md5VIEJO = 0
Establecer DvApi_Obj = Nuevo DvApi
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,Dvbbs.MemberName,,)
Establecer DvApi_Obj = Nada
Respuesta.Escribir DvApi_SaveCookie
Respuesta.Flush
Terminar si
Si solicitud (atrás) = 1 Entonces
Respuesta.Redirect(../index.asp)
Terminar si
'------------------------------------------------ - ---------------
'Respuesta.Redirect Dvbbs.Forum_Info(11)
respuesta.write<lenguaje de script=JavaScript>
respuesta.writesetTimeout(window.location='&Dvbbs.Forum_Info(11)&',1000);
respuesta.escribir</script>
4. Configuración de Dongwang: elimine el código de verificación de inicio de sesión, OK, la integración está completa.
5. Ampliación:
Los campos en la tabla Dv_User predeterminada a veces no pueden satisfacer nuestras necesidades reales. Necesitamos agregar nuevos campos para expandirlos.
1. Abra la tabla Dv_User y agregue un campo de tipo texto info_1
2. En la función ChkUserLogin de bbs/login.asp
Sql=Seleccione ID de usuario, nombre de usuario, contraseña de usuario, correo electrónico de usuario, publicación de usuario, tema de usuario, sexo de usuario, cara de usuario, ancho de usuario, altura de usuario, fecha de unión, último inicio de sesión, último inicio de sesión como hora de inicio, último inicio de sesión como tiempo activo, inicios de sesión de usuario, bloqueo de usuario, clase de usuario, ID de grupo de usuarios, grupo de usuarios, riqueza de usuario, EP de usuario, CP de usuario, potencia de usuario, cumpleaños de usuario, última IP de usuario, eliminación de usuario, usuario es mejor, uso rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como tablero
Modificar a:
Sql=Seleccione ID de usuario, nombre de usuario, contraseña de usuario, correo electrónico de usuario, publicación de usuario, tema de usuario, sexo de usuario, cara de usuario, ancho de usuario, altura de usuario, fecha de unión, último inicio de sesión, último inicio de sesión como hora de inicio, último inicio de sesión como tiempo activo, inicios de sesión de usuario, bloqueo de usuario, clase de usuario, ID de grupo de usuarios, grupo de usuarios, riqueza de usuario, EP de usuario, CP de usuario, potencia de usuario, cumpleaños de usuario, última IP de usuario, eliminación de usuario, usuario es mejor, uso rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como boardid,info_1
3. En la función TrueCheckUserLogin de bbs/inc/Dv_ClsMain.asp
Sql=Seleccione ID de usuario, nombre de usuario, contraseña de usuario, correo electrónico de usuario, publicación de usuario, tema de usuario, sexo de usuario, cara de usuario, ancho de usuario, altura de usuario, fecha de unión, último inicio de sesión como hora, último inicio de sesión, último inicio de sesión como tiempo activo, inicios de sesión de usuario, bloqueo de usuario, clase de usuario, ID de grupo de usuarios, grupo de usuarios, riqueza de usuario, EP de usuario, CP de usuario, potencia de usuario, cumpleaños de usuario, última IP de usuario, eliminación de usuario, usuario es mejor, uso rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como tablero
Modificar a:
Sql=Seleccione ID de usuario, nombre de usuario, contraseña de usuario, correo electrónico de usuario, publicación de usuario, tema de usuario, sexo de usuario, cara de usuario, ancho de usuario, altura de usuario, fecha de unión, último inicio de sesión como hora, último inicio de sesión, último inicio de sesión como tiempo activo, inicios de sesión de usuario, bloqueo de usuario, clase de usuario, ID de grupo de usuarios, grupo de usuarios, riqueza de usuario, EP de usuario, CP de usuario, potencia de usuario, cumpleaños de usuario, última IP de usuario, eliminación de usuario, usuario es mejor, uso rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como boardid,info_1
4.CheckUserLogin.asp
Response.Cookies(plataforma) = UserSession.documentElement.selectSingleNode(agent/@platform).text
añadido después
Response.Cookies(info_1) = UserSession.documentElement.selectSingleNode(userinfo/@info_1).text
5.índice.asp
Response.write(sistema operativo: & Request.Cookies(plataforma) & <br>)
añadido después
Response.write(nuevo: & Solicitud.Cookies(info_1) & <br>)
6.OK, completado con éxito