Wenn eine persönliche Website über ein Mitgliedsregistrierungsmodul + ein Dongwang-Forum verfügt, ist es nicht einfach, die Website in das Dongwang-Forum-System zu integrieren, um eine synchronisierte Aktualisierung von Benutzerinformationen, Anmeldungen und anderen Vorgängen zwischen verschiedenen Websystemen zu erreichen Eine detaillierte Anleitung für Entwickler der API-Schnittstelle des Dongwang-Forum-Systems, aber ein Anfänger wie ich kann es eine Weile nicht verstehen, sorry. Ich wollte nicht nachgeben und habe nach einigen Recherchen und Tests zu den Anmelde-, Verifizierungs- und anderen Funktionen endlich einige Erfolge erzielt, und Rookies haben auch Rookie-Methoden:
Die Forumversion für diesen Test ist Version 7.1.0 Sp1, andere Versionen wurden nicht getestet.
1. Dateistruktur der Website
wwwroot
┝index.asp
┝ CheckUserLogin.asp
┕bbs/
2. Integrationsprinzip
Es ist nicht schwierig, synchrone Updates zu implementieren. Das Hauptproblem bei der Integration ist die synchrone Anmeldung. Daher konzentrieren wir uns auf die Diskussion, wie eine synchrone Anmeldung erreicht werden kann. Meine Methode besteht darin, die Hauptbenutzertabelle der Site in die Dongwang-Benutzertabelle Dv_User zu integrieren (um die Mühe zu vermeiden, in Zukunft zwei Bibliotheken zu aktualisieren. Sie können nach Bedarf Felder zu Dv_User hinzufügen und bbs/login.asp und bbs/inc ändern). Nehmen Sie beim Anmelden entsprechende Änderungen an /Dv_ClsMain.asp vor. Senden Sie das Formular zur Überprüfung an bbs/login.asp. Die Hauptseite ermittelt anhand der in der Sitzung aufgezeichneten Informationen und erhält diese Benutzerinformationen.
3. Fügen Sie neue geänderte Dateien hinzu
1.index.asp-Code:
<html>
<Kopf>
<meta http-equiv=Content-Type content=text/html;
<title>Integration einer persönlichen Website und eines dynamischen Netzwerks (www.mzwu.com)</title>
</head>
<Körper>
<!--#include file=CheckUserLogin.asp -->
<%
Wenn CheckUserLogin, dann
Response.write(<a href=bbs/logout.asp?back=1>Abmelden</a><p></p>)
Response.write(Benutzername: & Request.Cookies(Benutzername) & <br>)
Response.write(Geschlecht: & Request.Cookies(sex) & <br>)
Response.write(Registrierungszeit: & Request.Cookies(joindate) & <br>)
Response.write(last login: & Request.Cookies(lastlogin) & <br>)
Response.write(Anzahl der Anmeldungen: & Request.Cookies(Benutzeranmeldungen) & <br>)
Response.write(Browsertyp: & Request.Cookies(Browser) & <br>)
Response.write(Browserversion: & Request.Cookies(version) & <br>)
Response.write(Betriebssystem: & Request.Cookies(Plattform) & <br>)
Anders
%>
<form id=form1 name=form1 method=post action=bbs/login.asp?action=chk&back=1>
Benutzername:
<input name=username type=text id=username size=10 />
<br />
Passwort:
<Eingabename=Passworttyp=Passwort-ID=Passwortgröße=10 />
<Eingabetyp=Submit-Name=Submit-Wert=Login/>
</form>
<%
Beenden Sie, wenn
%>
<p></p><a href=bbs/>Betreten Sie das Forum</a>
</body>
</html>
2.CheckUserLogin.asp-Code:
<!--#Include File=bbs/inc/Dv_ClsMain.asp-->
<%
Funktion CheckUserLogin()
Dim Dvbbs,UserSession
Const MsxmlVersion=.3.0
Setze Dvbbs = New Cls_Forum
Legen Sie UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument& MsxmlVersion) fest.
Wenn UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) Dann
Wenn UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 Dann
'Erfolgreiche Anmeldung im Forum
CheckUserLogin = True
Im Folgenden erfahren Sie, wie Sie einige Benutzerinformationen erhalten. Sie können diese zur einfacheren Verwendung in Cookies oder in der Sitzung speichern:
'Benutzer-ID: UserSession.documentElement.selectSingleNode(userinfo/@userid).text
'Benutzername: UserSession.documentElement.selectSingleNode(userinfo/@username).text
'Geburtstag: UserSession.documentElement.selectSingleNode(userinfo/@userbirthday).text
'E-Mail: UserSession.documentElement.selectSingleNode(userinfo/@useremail).text
'Geschlecht: UserSession.documentElement.selectSingleNode(userinfo/@usersex).text '0 ist weiblich, 1 ist männlich
'Registrierungszeit: UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
'Letzte Anmeldung: UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
'Anzahl der Anmeldungen: UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
'Geld: UserSession.documentElement.selectSingleNode(userinfo/@userwealth).text
'Punkte: UserSession.documentElement.selectSingleNode(userinfo/@userep).text
'Charm: UserSession.documentElement.selectSingleNode(userinfo/@usercp).text
'Letzte Anmelde-IP: UserSession.documentElement.selectSingleNode(userinfo/@userlastip).text
'Browsertyp: UserSession.documentElement.selectSingleNode(agent/@browser).text
'Browserversion: UserSession.documentElement.selectSingleNode(agent/@version).text
'Betriebssystem: UserSession.documentElement.selectSingleNode(agent/@platform).text
'Besucher-IP: UserSession.documentElement.selectSingleNode(agent/@ip).text
'Beispielanwendung:
Response.Cookies(username) = UserSession.documentElement.selectSingleNode(userinfo/@username).text
Response.Cookies(joindate) = UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
Wenn UserSession.documentElement.selectSingleNode(userinfo/@usersex).text=0 Dann
Response.Cookies(sex) = hübsches Mädchen
Anders
Response.Cookies(sex) = cooler Bruder
Beenden Sie, wenn
Response.Cookies(lastlogin) = UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
Response.Cookies(userlogins) = UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
Response.Cookies(browser) = UserSession.documentElement.selectSingleNode(agent/@browser).text
Response.Cookies(version) = UserSession.documentElement.selectSingleNode(agent/@version).text
Response.Cookies(platform) = UserSession.documentElement.selectSingleNode(agent/@platform).text
Anders
„Habe das Forum besucht, bin aber nicht eingeloggt, es handelt sich also um einen Gaststatus.“
CheckUserLogin = Falsch
Beenden Sie, wenn
Anders
„Habe das Forum nicht besucht.“
CheckUserLogin = Falsch
Beenden Sie, wenn
Setzen Sie UserSession = nichts
Setze Dvbbs = nichts
Funktion beenden
%>
3. Ein neuer roter Teil wird zu bbs/login.asp hinzugefügt, damit Sie nach erfolgreicher Anmeldung auf der Homepage der Site immer noch zur Startseite zurückkehren können:
Dunkler Comeurlname
Wenn instr(lcase(request(comeurl)),reg.asp)>0 oder instr(lcase(request(comeurl)),login.asp)>0 oder trim(request(comeurl))= Dann
kommenurlname=
comeurl=index.asp
Anders
comeurl=Anfrage(comeurl)
comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
Ende wenn
Wenn request(back)=1 dann
Response.Redirect(../index.asp)
Ende wenn
Dim TempStr
TempStr = template.html(2)
'Wenn Dvbbs.Forum_ChanSetting(0)=1 und Dvbbs.Forum_ChanSetting(10)=1 und Dvbbs.Forum_ChanSetting(12)=1, dann
' TempStr = Replacement(TempStr,{$ray_logininfo},template.html(3))
'Anders
' TempStr = Ersetzen(TempStr,{$ray_logininfo},)
'Ende wenn
'------------------------------------------------ - ---------------
„Systemintegration
'------------------------------------------------ - ---------------
Wenn DvApi_Enable, dann
Response.Write DvApi_SaveCookie
Response.Flush
Ende wenn
'------------------------------------------------ - ---------------
TempStr = Ersetzen(TempStr,{$ray_logininfo},)
TempStr = Ersetzen(TempStr,{$comeurl},comeurl)
TempStr = Ersetzen(TempStr,{$comeurlinfo},comeurlname)
TempStr = Ersetzen(TempStr,{$forumname},Dvbbs.Forum_Info(0))
Response.Write TempStr
TempStr=
Funktion beenden
4. Ein neuer roter Teil wurde zu bbs/logout.asp hinzugefügt, sodass Sie nach dem Abmelden auf der Startseite der Site immer noch zur Startseite zurückkehren können:
'------------------------------------------------ - ---------------
„Systemintegration
'------------------------------------------------ - ---------------
Dimmen Sie DvApi_Obj,DvApi_SaveCookie,SysKey
Wenn DvApi_Enable, dann
Md5OLD = 1
SysKey = Md5(Dvbbs.MemberName&DvApi_SysKey,16)
Md5OLD = 0
Setze DvApi_Obj = Neues DvApi
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,Dvbbs.MemberName,,)
Setze DvApi_Obj = Nichts
Response.Write DvApi_SaveCookie
Response.Flush
Ende wenn
Wenn request(back)=1 dann
Response.Redirect(../index.asp)
Ende wenn
'------------------------------------------------ - ---------------
'Response.Redirect Dvbbs.Forum_Info(11)
Response.write<script language=JavaScript>
Response.writesetTimeout(window.location='&Dvbbs.Forum_Info(11)&',1000);
Antwort.write</script>
4. Dongwang-Einstellungen: Entfernen Sie den Anmeldebestätigungscode. OK, die Integration ist abgeschlossen.
5. Erweiterung:
Die Felder in der Standard-Dv_User-Tabelle können manchmal unsere tatsächlichen Anforderungen nicht erfüllen. Wir müssen neue Felder hinzufügen, um sie zu erweitern.
1. Öffnen Sie die Tabelle Dv_User und fügen Sie ein Texttypfeld info_1 hinzu
2. In der ChkUserLogin-Funktion von bbs/login.asp
Sql=Wählen Sie UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin, lastlogin als Cometime, LastLogin als aus activetime,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid als Boardid
Ändern zu:
Sql=Wählen Sie UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin, lastlogin als Cometime, LastLogin als aus activetime,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid als Board-ID,info_1
3. In der TrueCheckUserLogin-Funktion von bbs/inc/Dv_ClsMain.asp
Sql=Wählen Sie UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin als Cometime, LastLogin, LastLogin als aus activetime,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid als Boardid
Ändern zu:
Sql=Wählen Sie UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin als Cometime, LastLogin, LastLogin als aus activetime,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid als Board-ID,info_1
4.CheckUserLogin.asp
Response.Cookies(platform) = UserSession.documentElement.selectSingleNode(agent/@platform).text
nachträglich hinzugefügt
Response.Cookies(info_1) = UserSession.documentElement.selectSingleNode(userinfo/@info_1).text
5.index.asp
Response.write(Betriebssystem: & Request.Cookies(Plattform) & <br>)
nachträglich hinzugefügt
Response.write(neu: & Request.Cookies(info_1) & <br>)
6.OK, erfolgreich abgeschlossen