Если на личном веб-сайте есть модуль регистрации участников + форум Dongwang, будет непросто интегрировать веб-сайт с системой форума Dongwang для синхронизации обновления пользовательской информации, входа в систему и других операций между различными веб-системами. Хотя Dongwang предоставила такую возможность. подробное руководство для разработчиков API-интерфейса системы Dongwang Forum, но новичку вроде меня пока не разобраться, извините. Не желая сдаваться, после некоторых исследований и тестирования входа в систему, проверки и других функций я, наконец, добился некоторых успехов. У новичков тоже есть методы для новичков:
Версия форума для этого теста — Версия 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 код:
<html>
<голова>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<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(Пол: & Request.Cookies(пол) & <br>)
Response.write(Время регистрации: & Request.Cookies(joindate) & <br>)
Response.write(последний вход: & Request.Cookies(последний вход) & <br>)
Response.write(количество входов: & Request.Cookies(логины пользователей) & <br>)
Response.write(тип браузера: & Request.Cookies(браузер) & <br>)
Response.write(версия браузера: & Request.Cookies(версия) & <br>)
Response.write(операционная система: & Request.Cookies(платформа) & <br>)
Еще
%>
<form id=form1 name=form1 метод=post action=bbs/login.asp?action=chk&back=1>
имя пользователя:
<input name=username type=text id=username size=10 />
<br />
пароль:
<входное имя=тип пароля=идентификатор пароля=размер пароля=10 />
<тип ввода=имя отправки=Отправить значение=Логин/>
</форма>
<%
Конец, если
%>
<p></p><a href=bbs/>Войти на форум</a>
</тело>
</html>
2. Код CheckUserLogin.asp:
<!--#Include File=bbs/inc/Dv_ClsMain.asp-->
<%
Функция ПроверитьПользовательЛогин()
Дим Dvbbs,UserSession
Конст MsxmlVersion=.3.0
Установить Dvbbs = Новый Cls_Forum
Установите UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument& MsxmlVersion)
Если UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) Тогда
Если UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 Тогда
'Успешный вход на форум
CheckUserLogin = Истина
«Ниже описано, как получить некоторую информацию о пользователе. Вы можете сохранить ее в файлах cookie или сеансе для удобства использования:
'Идентификатор пользователя: 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
'Charm: 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(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(логины пользователей) = UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
Response.Cookies(браузер) = UserSession.documentElement.selectSingleNode(agent/@browser).text
Response.Cookies(версия) = UserSession.documentElement.selectSingleNode(agent/@version).text
Response.Cookies(платформа) = UserSession.documentElement.selectSingleNode(agent/@platform).text
Еще
'Посещали форум, но еще не авторизовались, статус гостя
CheckUserLogin = Ложь
Конец, если
Еще
'Не заходил на форум
CheckUserLogin = Ложь
Конец, если
Установить UserSession = ничего
Установить Dvbbs = ничего
Конечная функция
%>
3. В bbs/login.asp добавляется новая красная часть, чтобы вы могли вернуться на домашнюю страницу после успешного входа на домашнюю страницу сайта:
Тусклое имя
Если instr(lcase(request(comeurl)),reg.asp)>0 или instr(lcase(request(comeurl)),login.asp)>0 или Trim(request(comeurl))= Тогда
имя_приходчика=
Comeurl=index.asp
Еще
Comeurl = запрос (comeurl)
Comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
Конец, если
Если запрос(обратно)=1 Тогда
Response.Redirect(../index.asp)
Конец, если
Дим ТемпСтр
TempStr = шаблон.html(2)
'Если Dvbbs.Forum_ChanSetting(0)=1 И Dvbbs.Forum_ChanSetting(10)=1 И Dvbbs.Forum_ChanSetting(12)=1 Тогда
' TempStr = Заменить(TempStr,{$ray_logininfo},template.html(3))
'Еще
' TempStr = Заменить(TempStr,{$ray_logininfo},)
'Конец, если
'------------------------------------------------ - ---------------
«Системная интеграция
'------------------------------------------------ - ---------------
Если DvApi_Enable Тогда
Response.Write DvApi_SaveCookie
Ответ.Flush
Конец, если
'------------------------------------------------ - ---------------
TempStr = Заменить(TempStr,{$ray_logininfo},)
TempStr = Заменить(TempStr,{$comeurl},comeurl)
TempStr = Заменить(TempStr,{$comeurlinfo},comeurlname)
TempStr = Заменить(TempStr,{$forumname},Dvbbs.Forum_Info(0))
Response.Write TempStr
ТемпСтр=
Конечная функция
4. В bbs/logout.asp добавлена новая красная часть, чтобы вы по-прежнему могли вернуться на домашнюю страницу после нажатия кнопки выхода на домашней странице сайта:
'------------------------------------------------ - ---------------
«Системная интеграция
'------------------------------------------------ - ---------------
Тусклый 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 = Ничего
Response.Write DvApi_SaveCookie
Ответ.Flush
Конец, если
Если запрос(обратно)=1 Тогда
Response.Redirect(../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=Выберите UserID,UserName,UserPassword,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,Use rHidden, UserMsg, IsChallenge, UserMobile, TitlePic, UserTitle, TruePassWord, UserToday, UserMoney, UserTicket, FollowMsgID, Vip_StarTime, Vip_EndTime, идентификатор пользователя как бортид
Изменить на:
Sql=Выберите UserID,UserName,UserPassword,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,Use rHidden, UserMsg, IsChallenge, UserMobile, TitlePic, UserTitle, TruePassWord, UserToday, UserMoney, UserTicket, FollowMsgID, Vip_StarTime, Vip_EndTime, идентификатор пользователя как boardid,info_1
3. В функции TrueCheckUserLogin файла bbs/inc/Dv_ClsMain.asp.
Sql = выберите UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin как время прибытия, LastLogin, LastLogin as 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, идентификатор пользователя как бортид
Изменить на:
Sql = выберите UserID, UserName, UserPassword, UserEmail, UserPost, UserTopic, UserSex, UserFace, UserWidth, UserHeight, JoinDate, LastLogin как время прибытия, LastLogin, LastLogin as 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, идентификатор пользователя как boardid,info_1
4.ПроверьтеUserLogin.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.ОК, успешно завершено