إذا كان موقع الويب الشخصي يحتوي على وحدة تسجيل الأعضاء + منتدى Dongwang، فلن يكون من السهل دمج موقع الويب مع نظام منتدى Dongwang لتحقيق التحديث المتزامن لمعلومات المستخدم وتسجيل الدخول والعمليات الأخرى بين أنظمة الويب المختلفة، على الرغم من أن Dongwang قد وفرت ذلك دليل مفصل لمطوري واجهة API لنظام منتدى Dongwang، لكن مبتدئ مثلي لا يمكنه فهمه لفترة من الوقت، آسف. لست على استعداد للاستسلام، بعد بعض الأبحاث والاختبارات على تسجيل الدخول والتحقق والوظائف الأخرى، حققت أخيرًا بعض النجاح لدى المبتدئين أيضًا:
إصدار المنتدى لهذا الاختبار هو الإصدار 7.1.0 Sp1، ولم يتم اختبار الإصدارات الأخرى.
1. بنية ملف الموقع
wwwroot
┝index.asp
┝ CheckUserLogin.asp
┕ببس/
2. مبدأ التكامل
ليس من الصعب تنفيذ التحديثات المتزامنة. المشكلة الرئيسية في التكامل هي تسجيل الدخول المتزامن، لذلك سيكون تركيزنا على مناقشة كيفية تحقيق تسجيل الدخول المتزامن. طريقتي هي دمج جدول مستخدم الموقع الرئيسي في جدول مستخدم Dongwang Dv_User (لتجنب مشكلة تحديث مكتبتين في المستقبل، يمكنك إضافة حقول إلى Dv_User حسب الحاجة، وتعديل bbs/login.asp وbbs/inc). قم بإجراء التعديلات المناسبة على /Dv_ClsMain.asp؛ عند تسجيل الدخول، أرسل النموذج إلى bbs/login.asp للتحقق؛ يحدد الموقع الرئيسي ما إذا كان تسجيل الدخول ناجحًا بناءً على المعلومات المسجلة في الجلسة بعد تسجيل الدخول الناجح إلى Dongwang، ويحصل عليه. معلومات المستخدم.
3. إضافة ملفات معدلة جديدة
1.index.asp الكود:
<أتش تي أم أل>
<الرأس>
<meta http-equiv=Content-Type content=text/html;
<title>تكامل موقع الويب الشخصي والشبكة الديناميكية (www.mzwu.com)</title>
</الرأس>
<الجسم>
<!--#include file=CheckUserLogin.asp -->
<%
إذا CheckUserLogin ثم
Response.write(<a href=bbs/logout.asp?back=1>تسجيل الخروج</a><p></p>)
Response.write(اسم المستخدم: & Request.Cookies(اسم المستخدم) & <br>)
Response.write(الجنس: وطلب ملفات تعريف الارتباط(الجنس) و<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>)
آخر
%>
<معرف النموذج=form1 name=form1method=post action=bbs/login.asp?action=chk&back=1>
اسم المستخدم:
<اسم الإدخال=نوع اسم المستخدم=معرف النص=حجم اسم المستخدم=10 />
<br />
كلمة المرور:
<اسم الإدخال=نوع كلمة المرور=معرف كلمة المرور=حجم كلمة المرور=10 />
<نوع الإدخال=اسم الإرسال=قيمة الإرسال=تسجيل الدخول/>
</النموذج>
<%
انتهي إذا
%>
<p></p><a href=bbs/>ادخل إلى المنتدى</a>
</الجسم>
</html>
2.رمز CheckUserLogin.asp:
<!--#تضمين الملف=bbs/inc/Dv_ClsMain.asp-->
<%
الدالة CheckUserLogin()
خافت Dvbbs، جلسة المستخدم
كونست MsxmlVersion=.3.0
تعيين Dvbbs = New Cls_Forum
تعيين UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument&MsxmlVersion)
إذا كان UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) ثم
إذا كان UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 ثم
'تم تسجيل الدخول إلى المنتدى بنجاح
CheckUserLogin = صحيح
'في ما يلي كيفية الحصول على بعض معلومات المستخدم، يمكنك حفظها في ملفات تعريف الارتباط أو الجلسة لسهولة الاستخدام:
'معرف المستخدم: 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(username) = UserSession.documentElement.selectSingleNode(userinfo/@username).text
Response.Cookies(joindate) = UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
إذا كان UserSession.documentElement.selectSingleNode(userinfo/@usersex).text=0 ثم
Response.Cookies(sex) = فتاة جميلة
آخر
Response.Cookies(sex) = أخ رائع
انتهي إذا
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
آخر
'لقد قمت بزيارة المنتدى ولكن لم تقم بتسجيل الدخول، لذا فهي حالة ضيف
CheckUserLogin = خطأ
انتهي إذا
آخر
'"لم أزر المنتدى"'
CheckUserLogin = خطأ
انتهي إذا
تعيين جلسة المستخدم = لا شيء
تعيين Dvbbs = لا شيء
وظيفة النهاية
%>
3. تمت إضافة جزء أحمر جديد إلى bbs/login.asp بحيث لا يزال بإمكانك العودة إلى الصفحة الرئيسية بعد تسجيل الدخول بنجاح إلى الصفحة الرئيسية للموقع:
الاسم الخافت
إذا كان instr(lcase(request(comeurl)),reg.asp)>0 أو instr(lcase(request(comeurl)),login.asp)>0 أو Trim(request(comeurl))= إذن
comeurlname=
Comeurl=index.asp
آخر
كوميورل=طلب(كوميورل)
Comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
نهاية إذا
إذا كان الطلب (العودة) = 1 ثم
الاستجابة.إعادة التوجيه(../index.asp)
نهاية إذا
خافت TempStr
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 ثم
الاستجابة.اكتب DvApi_SaveCookie
الاستجابة. فلوش
نهاية إذا
'------------------------------------------------ - ---------------
TempStr = استبدال(TempStr,{$ray_logininfo},)
TempStr = استبدال (TempStr,{$comeurl},comeurl)
TempStr = استبدال(TempStr,{$comeurlinfo},comeurlname)
TempStr = استبدال(TempStr,{$forumname},Dvbbs.Forum_Info(0))
الاستجابة.اكتب TempStr
TempStr=
وظيفة النهاية
4. تمت إضافة جزء أحمر جديد إلى bbs/logout.asp بحيث لا يزال بإمكانك العودة إلى الصفحة الرئيسية بعد تسجيل الخروج من الصفحة الرئيسية للموقع:
'------------------------------------------------ - ---------------
'تكامل النظام
'------------------------------------------------ - ---------------
Dim DvApi_Obj,DvApi_SaveCookie,SysKey
إذا كان DvApi_Enable ثم
Md5OLD = 1
SysKey = Md5(Dvbbs.MemberName&DvApi_SysKey,16)
Md5OLD = 0
اضبط DvApi_Obj = DvApi جديد
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,Dvbbs.MemberName,,)
اضبط DvApi_Obj = لا شيء
الاستجابة.اكتب DvApi_SaveCookie
الاستجابة. فلوش
نهاية إذا
إذا كان الطلب (العودة) = 1 ثم
الاستجابة.إعادة التوجيه(../index.asp)
نهاية إذا
'------------------------------------------------ - ---------------
'Response.Redirect Dvbbs.Forum_Info(11)
Response.write<لغة البرنامج النصي=JavaScript>
Response.writesetTimeout(window.location='&Dvbbs.Forum_Info(11)&',1000);
استجابة.اكتب</script>
4. إعدادات Dongwang: قم بإزالة رمز التحقق من تسجيل الدخول، حسنًا، اكتمل التكامل.
5. التمديد:
في بعض الأحيان، لا يمكن للحقول الموجودة في جدول Dv_User الافتراضي أن تلبي احتياجاتنا الفعلية. نحتاج إلى إضافة حقول جديدة لتوسيعها.
1. افتح جدول Dv_User وأضف حقل نوع النص info_1
2. في وظيفة ChkUserLogin لـ bbs/login.asp
Sql=حدد معرف المستخدم،اسم المستخدم،كلمة مرور المستخدم،UserEmail،UserPost،UserTopic،UserSex،UserFace،UserWidth،UserHeight،JoinDate،LastLogin،lastlogin كـ Cometime، LastLogin كـ activetime،UserLogins،Lockuser،Userclass،UserGroupID،UserGroup،userWealth،userEP،userCP،UserPower،UserBirthday،UserLastIP،UserDel،UserIsBest،استخدام rHidden،UserMsg،IsChallenge،UserMobile،TitlePic،UserTitle،TruePassWord،UserToday،UserMoney،UserTicket،FollowMsgID،Vip_StarTime،Vip_EndTime،معرف المستخدم كما boardid
تعديل إلى:
Sql=حدد معرف المستخدم،اسم المستخدم،كلمة مرور المستخدم،UserEmail،UserPost،UserTopic،UserSex،UserFace،UserWidth،UserHeight،JoinDate،LastLogin،lastlogin كـ Cometime، LastLogin كـ activetime،UserLogins،Lockuser،Userclass،UserGroupID،UserGroup،userWealth،userEP،userCP،UserPower،UserBirthday،UserLastIP،UserDel،UserIsBest،استخدام rHidden،UserMsg،IsChallenge،UserMobile،TitlePic،UserTitle،TruePassWord،UserToday،UserMoney،UserTicket،FollowMsgID،Vip_StarTime،Vip_EndTime،معرف المستخدم كما معرف،info_1
3. في وظيفة TrueCheckUserLogin الخاصة بـ bbs/inc/Dv_ClsMain.asp
Sql=حدد معرف المستخدم،اسم المستخدم،كلمة مرور المستخدم،UserEmail،UserPost،UserTopic،UserSex،UserFace،UserWidth،UserHeight،JoinDate،LastLogin كوقت قادم،LastLogin،LastLogin كـ activetime،UserLogins،Lockuser،Userclass،UserGroupID،UserGroup،userWealth،userEP،userCP،UserPower،UserBirthday،UserLastIP،UserDel،UserIsBest،استخدام rHidden،UserMsg،IsChallenge،UserMobile،TitlePic،UserTitle،TruePassWord،UserToday،UserMoney،UserTicket،FollowMsgID،Vip_StarTime،Vip_EndTime،معرف المستخدم كما boardid
تعديل إلى:
Sql=حدد معرف المستخدم،اسم المستخدم،كلمة مرور المستخدم،UserEmail،UserPost،UserTopic،UserSex،UserFace،UserWidth،UserHeight،JoinDate،LastLogin كوقت قادم،LastLogin،LastLogin كـ activetime،UserLogins،Lockuser،Userclass،UserGroupID،UserGroup،userWealth،userEP،userCP،UserPower،UserBirthday،UserLastIP،UserDel،UserIsBest،استخدام rHidden،UserMsg،IsChallenge،UserMobile،TitlePic،UserTitle،TruePassWord،UserToday،UserMoney،UserTicket،FollowMsgID،Vip_StarTime،Vip_EndTime،معرف المستخدم كما معرف،info_1
4.CheckUserLogin.asp
Response.Cookies(platform) = 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(جديد: & Request.Cookies(info_1) & <br>)
6. حسنًا، تم الانتهاء بنجاح