Si un site Web personnel dispose d'un module d'inscription des membres + Dongwang Forum, il ne sera pas facile d'intégrer le site Web au système Dongwang Forum pour obtenir une mise à jour synchronisée des informations utilisateur, des connexions et d'autres opérations entre différents systèmes Web, bien que Dongwang l'ait fourni. un guide détaillé pour les développeurs de l'interface API du système Dongwang Forum, mais un novice comme moi ne peut pas le comprendre pendant un moment, désolé. Ne voulant pas céder, après quelques recherches et tests sur sa connexion, sa vérification et d'autres fonctions, j'ai finalement obtenu un certain succès. Les Rookies ont également des méthodes de rookie :
La version du forum pour ce test est la version 7.1.0 Sp1 et les autres versions n'ont pas été testées.
1. Structure des fichiers du site Web
wwwroot
┝index.asp
┝ CheckUserLogin.asp
┕bbs/
2. Principe d'intégration
Il n'est pas difficile de mettre en œuvre des mises à jour synchrones. Le principal problème de l'intégration est la connexion synchrone, nous nous concentrerons donc sur la façon d'obtenir une connexion synchrone. Ma méthode consiste à intégrer la table utilisateur du site principal dans la table utilisateur Dongwang Dv_User (pour éviter les problèmes de mise à jour de deux bibliothèques à l'avenir. Vous pouvez ajouter des champs à Dv_User selon vos besoins et modifier bbs/login.asp et bbs/inc). Apportez les modifications appropriées à /Dv_ClsMain.asp ; lors de la connexion, envoyez le formulaire à bbs/login.asp pour vérification ; le site principal détermine si la connexion est réussie en fonction des informations enregistrées dans la session après une connexion réussie à Dongwang et obtient informations utilisateur.
3. Ajouter de nouveaux fichiers modifiés
Code 1.index.asp :
<html>
<tête>
<méta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Intégration site personnel et réseau dynamique (www.mzwu.com)</title>
</tête>
<corps>
<!--#include file=CheckUserLogin.asp -->
<%
Si CheckUserLogin alors
Response.write(<a href=bbs/logout.asp?back=1>Déconnexion</a><p></p>)
Response.write (nom d'utilisateur : & Request.Cookies (nom d'utilisateur) & <br>)
Response.write (Gender : & Request.Cookies (sexe) & <br>)
Response.write (Heure d'inscription : & Request.Cookies (joindate) & <br>)
Response.write (dernière connexion : & Request.Cookies (dernière connexion) & <br>)
Response.write(nombre de connexions : & Request.Cookies(userlogins) & <br>)
Response.write (type de navigateur : & Request.Cookies (navigateur) & <br>)
Response.write(version du navigateur : & Request.Cookies(version) & <br>)
Response.write (système d'exploitation : & Request.Cookies (plateforme) & <br>)
Autre
%>
<form id=form1 name=form1 method=post action=bbs/login.asp?action=chk&back=1>
nom d'utilisateur:
<input name=username type=text id=username size=10 />
<br />
mot de passe:
<input name=password type=password id=password size=10 />
<input type=submit name=Submit value=Connexion/>
</form>
<%
Terminer si
%>
<p></p><a href=bbs/>Entrez dans le forum</a>
</corps>
</html>
2.Vérifiez le code UserLogin.asp :
<!--#Include File=bbs/inc/Dv_ClsMain.asp-->
<%
Fonction CheckUserLogin()
Dim Dvbbs, session utilisateur
Const MsxmlVersion = .3.0
Définir Dvbbs = Nouveau Cls_Forum
Définir UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument& MsxmlVersion)
Si UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) Alors
Si UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 Alors
'Connexion réussie au forum
CheckUserLogin = Vrai
« Voici comment obtenir certaines informations utilisateur. Vous pouvez les enregistrer dans les cookies ou la session pour une utilisation facile :
'ID utilisateur : UserSession.documentElement.selectSingleNode(userinfo/@userid).text
'Nom d'utilisateur : UserSession.documentElement.selectSingleNode(userinfo/@username).text
'Anniversaire : UserSession.documentElement.selectSingleNode(userinfo/@userbirthday).text
'E-mail : UserSession.documentElement.selectSingleNode(userinfo/@useremail).text
'Gender : UserSession.documentElement.selectSingleNode(userinfo/@usersex).text '0 est une femme, 1 est un homme
'Heure d'inscription : UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
'Dernière connexion : UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
'Nombre de connexions : UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
'Argent : UserSession.documentElement.selectSingleNode(userinfo/@userwealth).text
'Points : UserSession.documentElement.selectSingleNode(userinfo/@userep).text
'Charme : UserSession.documentElement.selectSingleNode(userinfo/@usercp).text
'Dernière adresse IP de connexion : UserSession.documentElement.selectSingleNode(userinfo/@userlastip).text
'Type de navigateur : UserSession.documentElement.selectSingleNode(agent/@browser).text
'Version du navigateur : UserSession.documentElement.selectSingleNode(agent/@version).text
'Système d'exploitation : UserSession.documentElement.selectSingleNode(agent/@platform).text
'IP en visite : UserSession.documentElement.selectSingleNode(agent/@ip).text
'Exemple d'application :
Response.Cookies (nom d'utilisateur) = UserSession.documentElement.selectSingleNode (userinfo/@username).text
Response.Cookies (joindate) = UserSession.documentElement.selectSingleNode (userinfo/@joindate).text
Si UserSession.documentElement.selectSingleNode(userinfo/@usersex).text=0 Alors
Response.Cookies (sexe) = jolie fille
Autre
Response.Cookies (sexe) = frère cool
Terminer si
Response.Cookies (lastlogin) = UserSession.documentElement.selectSingleNode (userinfo/@lastlogin).text
Response.Cookies (userlogins) = UserSession.documentElement.selectSingleNode (userinfo/@userlogins).text
Response.Cookies (navigateur) = UserSession.documentElement.selectSingleNode (agent/@browser).text
Response.Cookies(version) = UserSession.documentElement.selectSingleNode(agent/@version).text
Response.Cookies (plateforme) = UserSession.documentElement.selectSingleNode (agent/@platform).text
Autre
'J'ai visité le forum mais je ne suis pas connecté, c'est donc un statut d'invité
CheckUserLogin = Faux
Terminer si
Autre
'Je n'ai pas visité le forum
CheckUserLogin = Faux
Terminer si
Définir UserSession = rien
Définir Dvbbs = rien
Fonction de fin
%>
3. Une nouvelle partie rouge est ajoutée à bbs/login.asp afin que vous puissiez toujours revenir à la page d'accueil après vous être connecté avec succès à la page d'accueil du site :
Dim nom du comeurl
Si instr(lcase(request(comeurl)),reg.asp)>0 ou instr(lcase(request(comeurl)),login.asp)>0 ou trim(request(comeurl))= Alors
comeurlname=
comeurl=index.asp
Autre
comeurl=requête(comeurl)
comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
Fin si
Si request(back)=1 Alors
Réponse.Redirect(../index.asp)
Fin si
Dim TempStr
TempStr = modèle.html(2)
'Si Dvbbs.Forum_ChanSetting(0)=1 et Dvbbs.Forum_ChanSetting(10)=1 et Dvbbs.Forum_ChanSetting(12)=1 alors
' TempStr = Remplacer(TempStr,{$ray_logininfo},template.html(3))
'Autre
' TempStr = Remplacer(TempStr,{$ray_logininfo},)
'Fin si
'------------------------------------------------ - ---------------
'Intégration du système
'------------------------------------------------ - ---------------
Si DvApi_Enable Alors
Response.Write DvApi_SaveCookie
Réponse.Flush
Fin si
'------------------------------------------------ - ---------------
TempStr = Remplacer(TempStr,{$ray_logininfo},)
TempStr = Remplacer(TempStr,{$comeurl},comeurl)
TempStr = Remplacer(TempStr,{$comeurlinfo},comeurlname)
TempStr = Remplacer(TempStr,{$forumname},Dvbbs.Forum_Info(0))
Réponse.Write TempStr
TempStr=
Fonction de fin
4. Une nouvelle partie rouge a été ajoutée à bbs/logout.asp afin que vous puissiez toujours revenir à la page d'accueil après vous être déconnecté sur la page d'accueil du site :
'------------------------------------------------ - ---------------
'Intégration du système
'------------------------------------------------ - ---------------
Faible DvApi_Obj,DvApi_SaveCookie,SysKey
Si DvApi_Enable Alors
Md5ANCIEN = 1
SysKey = Md5 (Dvbbs.MemberName&DvApi_SysKey,16)
Md5ANCIEN = 0
Définir DvApi_Obj = Nouveau DvApi
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,Dvbbs.MemberName,,)
Définir DvApi_Obj = Rien
Response.Write DvApi_SaveCookie
Réponse.Flush
Fin si
Si request(back)=1 Alors
Réponse.Redirect(../index.asp)
Fin si
'------------------------------------------------ - ---------------
'Réponse.Redirection Dvbbs.Forum_Info(11)
réponse.write<script langage=JavaScript>
réponse.writesetTimeout(window.location='&Dvbbs.Forum_Info(11)&',1000);
réponse.write</script>
4. Paramètres Dongwang : Supprimez le code de vérification de connexion, OK, l'intégration est terminée.
5. Prolongation :
Les champs de la table Dv_User par défaut ne peuvent parfois pas répondre à nos besoins réels. Nous devons ajouter de nouveaux champs pour les développer.
1. Ouvrez la table Dv_User et ajoutez un champ de type texte info_1
2. Dans la fonction ChkUserLogin de bbs/login.asp
Sql = Sélectionnez UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin, lastlogin à l'heure, LastLogin à 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 comme boardid
Modifier pour :
Sql = Sélectionnez UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin, lastlogin à l'heure, LastLogin à 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 comme boardid, info_1
3. Dans la fonction TrueCheckUserLogin de bbs/inc/Dv_ClsMain.asp
Sql = Sélectionnez UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin à l'heure actuelle, LastLogin, LastLogin à l'heure actuelle. 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 comme boardid
Modifier pour :
Sql = Sélectionnez UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin à l'heure actuelle, LastLogin, LastLogin à l'heure actuelle. 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 comme boardid,info_1
4.CheckUserLogin.asp
Response.Cookies (plateforme) = UserSession.documentElement.selectSingleNode (agent/@platform).text
ajouté après
Response.Cookies(info_1) = UserSession.documentElement.selectSingleNode(userinfo/@info_1).text
5.index.asp
Response.write (système d'exploitation : & Request.Cookies (plateforme) & <br>)
ajouté après
Response.write(nouveau : & Request.Cookies(info_1) & <br>)
6.OK, terminé avec succès