個人の Web サイトに会員登録モジュール + 東王フォーラムがある場合、東王が提供している異なる Web システム間でのユーザー情報の更新、ログイン、その他の操作の同期を実現するために Web サイトを東王フォーラム システムと統合することは容易ではありません。 Dongwang Forum システムの API インターフェースの開発者向けの詳細なガイドですが、私のような初心者にはしばらく理解できません。諦めずに、ログイン、検証、その他の機能について調査とテストを行った結果、ルーキーでもいくつかの成功を収めることができました。
このテストのフォーラム バージョンはバージョン 7.1.0 Sp1 であり、他のバージョンはテストされていません。
1. ウェブサイトのファイル構造
wwwroot
┝index.asp
┝ CheckUserLogin.asp
┕bbs/
2. 統合原則
同期更新の実装は難しくありません。統合に関する主な問題は同期ログインです。そのため、同期ログインを実現する方法について説明します。私の方法は、メイン サイトのユーザー テーブルを Dongwang ユーザー テーブル Dv_User に統合することです (将来 2 つのライブラリを更新する手間を避けるため)。必要に応じて Dv_User にフィールドを追加し、bbs/login.asp と bbs/inc を変更できます。ログイン時に /Dv_ClsMain.asp に適切な変更を加え、検証のためにフォームを bbs/login.asp に送信します。メイン サイトは、Dongwang へのログイン成功後にセッションに記録された情報に基づいてログインが成功したかどうかを判断し、ユーザー情報。
3. 変更された新しいファイルを追加します
1.index.asp コード:
<html>
<頭>
<meta http-equiv=Content-Type content=text/html;
<title>個人 Web サイトと動的ネットワーク (www.mzwu.com) の統合</title>
</head>
<本文>
<!--#include file=CheckUserLogin.asp -->
<%
CheckUserLogin の場合は、
Response.write(<a href=bbs/logout.asp?back=1>ログアウト</a><p></p>)
Response.write(ユーザー名: & Request.Cookies(ユーザー名) & <br>)
Response.write(性別: & Request.Cookies(性別) & <br>)
Response.write(登録時刻: & Request.Cookies(joindate) & <br>)
Response.write(最終ログイン: & Request.Cookies(最終ログイン) & <br>)
Response.write(ログイン数: & Request.Cookies(userlogins) & <br>)
Response.write(ブラウザの種類: & Request.Cookies(ブラウザ) & <br>)
Response.write(ブラウザのバージョン: & Request.Cookies(バージョン) & <br>)
Response.write(オペレーティング システム: & Request.Cookies(プラットフォーム) & <br>)
それ以外
%>
<form id=form1 name=form1 method=post action=bbs/login.asp?action=chk&back=1>
ユーザー名:
<input name=ユーザー名 type=text id=ユーザー名 size=10 />
<br />
パスワード:
<入力名=パスワード タイプ=パスワード ID=パスワード サイズ=10 />
<入力タイプ=送信名=送信値=ログイン/>
</form>
<%
次の場合に終了
%>
<p></p><a href=bbs/>フォーラムに参加してください</a>
</body>
</html>
2.CheckUserLogin.asp コード:
<!--#Include File=bbs/inc/Dv_ClsMain.asp-->
<%
関数 CheckUserLogin()
Dim Dvbbs、UserSession
Const MsxmlVersion=.3.0
Dvbbs = 新しい Cls_Forum を設定します
Set UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument& MsxmlVersion)
If UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) then
If UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 then
'フォーラムに正常にログインしました
CheckUserLogin = True
' 以下は、簡単に使用できるよう、一部のユーザー情報を Cookie またはセッションに保存する方法です。
'ユーザーID: UserSession.documentElement.selectSingleNode(userinfo/@userid).text
'ユーザー名: UserSession.documentElement.selectSingleNode(userinfo/@username).text
'誕生日: UserSession.documentElement.selectSingleNode(userinfo/@userbirthday).text
'電子メール: UserSession.documentElement.selectSingleNode(userinfo/@useremail).text
'性別: UserSession.documentElement.selectSingleNode(userinfo/@usersex).text '0 は女性、1 は男性
'登録時刻: UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
'最終ログイン: UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
'ログイン数: UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
'お金: UserSession.documentElement.selectSingleNode(userinfo/@userwealth).text
'ポイント: UserSession.documentElement.selectSingleNode(userinfo/@userep).text
'チャーム: UserSession.documentElement.selectSingleNode(userinfo/@usercp).text
'最終ログイン IP: UserSession.documentElement.selectSingleNode(userinfo/@userlastip).text
'ブラウザの種類: UserSession.documentElement.selectSingleNode(agent/@browser).text
'ブラウザのバージョン: UserSession.documentElement.selectSingleNode(agent/@version).text
'オペレーティング システム: UserSession.documentElement.selectSingleNode(agent/@platform).text
'訪問先 IP: UserSession.documentElement.selectSingleNode(agent/@ip).text
'アプリケーション例:
Response.Cookies(ユーザー名) = UserSession.documentElement.selectSingleNode(ユーザー情報/@ユーザー名).text
Response.Cookies(joindate) = UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
UserSession.documentElement.selectSingleNode(userinfo/@usersex).text=0 の場合
Response.Cookies(性別) = かわいい女の子
それ以外
Response.Cookies(性別) = クールなお兄さん
次の場合に終了
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(バージョン) = UserSession.documentElement.selectSingleNode(エージェント/@バージョン).text
Response.Cookies(プラットフォーム) = UserSession.documentElement.selectSingleNode(agent/@platform).text
それ以外
'フォーラムにアクセスしましたが、ログインしていないため、ゲストステータスです
CheckUserLogin = False
次の場合に終了
それ以外
「フォーラムにアクセスしたことがない」
CheckUserLogin = False
次の場合に終了
UserSession = なしを設定します
Dvbbs = 何も設定しない
終了機能
%>
3. 新しい赤い部分が bbs/login.asp に追加され、サイトのホームページに正常にログインした後でもホームページに戻ることができます。
ディム来URL名
instr(lcase(request(comeurl)),reg.asp)>0 または instr(lcase(request(comeurl)),login.asp)>0 または trim(request(comeurl))= の場合
来るURL名=
Comeurl=index.asp
それ以外
Comeurl=リクエスト(comeurl)
Comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
終了の場合
request(back)=1 の場合
Response.Redirect(../index.asp)
終了の場合
薄暗い温度強度
TempStr = template.html(2)
'Dvbbs.Forum_ChanSetting(0)=1 かつ Dvbbs.Forum_ChanSetting(10)=1 かつ Dvbbs.Forum_ChanSetting(12)=1 の場合
' TempStr = Replace(TempStr,{$ray_logininfo},template.html(3))
'それ以外
' TempStr = Replace(TempStr,{$ray_logininfo},)
'終了の場合
'------------------------------------------------ - ---------------
「システム統合」
'------------------------------------------------ - ---------------
DvApi_Enable の場合
Response.Write DvApi_SaveCookie
レスポンス.フラッシュ
終了の場合
'------------------------------------------------ - ---------------
TempStr = Replace(TempStr,{$ray_logininfo},)
TempStr = Replace(TempStr,{$comeurl},comeurl)
TempStr = Replace(TempStr,{$comeurlinfo},comeurlname)
TempStr = Replace(TempStr,{$forumname},Dvbbs.Forum_Info(0))
Response.Write TempStr
TempStr=
終了機能
4. 新しい赤い部分が bbs/logout.asp に追加され、サイトのホームページからログアウトした後でもホームページに戻ることができます。
'------------------------------------------------ - ---------------
「システム統合」
'------------------------------------------------ - ---------------
Dim DvApi_Obj、DvApi_SaveCookie、SysKey
DvApi_Enable の場合
Md5OLD = 1
SysKey = Md5(Dvbbs.メンバー名&DvApi_SysKey,16)
Md5OLD = 0
DvApi_Obj = 新しい DvApi を設定します
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,Dvbbs.MemberName,,)
DvApi_Obj = なしを設定します
Response.Write DvApi_SaveCookie
レスポンス.フラッシュ
終了の場合
request(back)=1 の場合
Response.Redirect(../index.asp)
終了の場合
'------------------------------------------------ - ---------------
'Response.Redirect Dvbbs.Forum_Info(11)
response.write<script language=JavaScript>
response.writesetTimeout(window.location='&Dvbbs.Forum_Info(11)&',1000);
応答.書き込み</script>
4. Dongwang 設定: ログイン確認コードを削除します。OK、統合は完了です。
5.拡張子:
デフォルトの Dv_User テーブルのフィールドは実際のニーズを満たさない場合があります。新しいフィールドを追加して拡張してみましょう。
1. Dv_User テーブルを開き、テキスト タイプ フィールド info_1 を追加します。
2. bbs/login.asp の ChkUserLogin 関数内
Sql=UserID、UserName、UserPassword、UserEmail、UserPost、UserTopic、UserSex、UserFace、UserWidth、UserHeight、JoinDate、LastLogin、lastlogin as Cometime、LastLogin as を選択しますアクティブ時間、ユーザーログイン、ロックユーザー、ユーザークラス、ユーザーグループID、ユーザーグループ、ユーザーウェルス、ユーザーEP、ユーザーCP、ユーザーパワー、ユーザー誕生日、ユーザー最終IP、ユーザーデル、ユーザー最良、使用rHidden、UserMsg、IsChallenge、UserMobile、TitlePic、UserTitle、TruePassWord、UserToday、UserMoney、UserTicket、FollowMsgID、Vip_StarTime、Vip_EndTime、useridボードイドとして
次のように変更します。
Sql=UserID、UserName、UserPassword、UserEmail、UserPost、UserTopic、UserSex、UserFace、UserWidth、UserHeight、JoinDate、LastLogin、lastlogin as Cometime、LastLogin as を選択しますアクティブ時間、ユーザーログイン、ロックユーザー、ユーザークラス、ユーザーグループID、ユーザーグループ、ユーザーウェルス、ユーザーEP、ユーザーCP、ユーザーパワー、ユーザー誕生日、ユーザー最終IP、ユーザーデル、ユーザー最良、使用rHidden、UserMsg、IsChallenge、UserMobile、TitlePic、UserTitle、TruePassWord、UserToday、UserMoney、UserTicket、FollowMsgID、Vip_StarTime、Vip_EndTime、useridボード ID、info_1 として
3. bbs/inc/Dv_ClsMain.asp の TrueCheckUserLogin 関数内
Sql=UserID、UserName、UserPassword、UserEmail、UserPost、UserTopic、UserSex、UserFace、UserWidth、UserHeight、JoinDate、LastLogin を Cometime 、LastLogin、LastLogin として選択しますアクティブ時間、ユーザーログイン、ロックユーザー、ユーザークラス、ユーザーグループID、ユーザーグループ、ユーザーウェルス、ユーザーEP、ユーザーCP、ユーザーパワー、ユーザー誕生日、ユーザー最終IP、ユーザーデル、ユーザー最良、使用rHidden、UserMsg、IsChallenge、UserMobile、TitlePic、UserTitle、TruePassWord、UserToday、UserMoney、UserTicket、FollowMsgID、Vip_StarTime、Vip_EndTime、useridボードイドとして
次のように変更します。
Sql=UserID、UserName、UserPassword、UserEmail、UserPost、UserTopic、UserSex、UserFace、UserWidth、UserHeight、JoinDate、LastLogin を Cometime 、LastLogin、LastLogin として選択しますアクティブ時間、ユーザーログイン、ロックユーザー、ユーザークラス、ユーザーグループID、ユーザーグループ、ユーザーウェルス、ユーザーEP、ユーザーCP、ユーザーパワー、ユーザー誕生日、ユーザー最終IP、ユーザーデル、ユーザー最良、使用rHidden、UserMsg、IsChallenge、UserMobile、TitlePic、UserTitle、TruePassWord、UserToday、UserMoney、UserTicket、FollowMsgID、Vip_StarTime、Vip_EndTime、useridボード ID、info_1 として
4.CheckUserLogin.asp
Response.Cookies(プラットフォーム) = UserSession.documentElement.selectSingleNode(agent/@platform).text
後に追加
Response.Cookies(info_1) = UserSession.documentElement.selectSingleNode(userinfo/@info_1).text
5.index.asp
Response.write(オペレーティング システム: & Request.Cookies(プラットフォーム) & <br>)
後に追加
Response.write(new: & Request.Cookies(info_1) & <br>)
6.OK、正常に完了しました