개인 홈페이지에 회원가입 모듈 + 동왕포럼이 있는 경우, 동왕이 제공하고 있지만 사용자 정보, 로그인, 기타 운영의 동기화를 동왕포럼 시스템과 통합하는 것은 쉽지 않습니다. 동왕포럼 시스템의 API 인터페이스 개발자를 위한 상세한 가이드인데, 저 같은 초보자는 한동안 이해하지 못해서 죄송합니다. 로그인, 확인 및 기타 기능에 대한 몇 가지 조사와 테스트를 거쳐 포기할 의향이 없었고 마침내 Rookies도 루키 방법을 사용하여 몇 가지 성공을 거두었습니다.
이 테스트의 포럼 버전은 버전 7.1.0 Sp1이며, 다른 버전은 테스트되지 않았습니다.
1. 웹사이트 파일 구조
wwwroot
┝index.asp
┝UserLogin.asp 확인
┕bbs/
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>
</head>
<본문>
<!--#include 파일=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(사용자 로그인) & <br>)
Response.write(브라우저 유형: & Request.Cookies(브라우저) & <br>)
Response.write(브라우저 버전: & Request.Cookies(버전) & <br>)
Response.write(운영 체제: & Request.Cookies(플랫폼) & <br>)
또 다른
%>
<form id=form1 이름=form1 방법=post action=bbs/login.asp?action=chk&back=1>
사용자 이름:
<입력 이름=사용자 이름 유형=텍스트 id=사용자 이름 크기=10 />
<br />
비밀번호:
<입력 이름=비밀번호 유형=비밀번호 id=비밀번호 크기=10 />
<입력 유형=제출 이름=제출 값=로그인/>
</form>
<%
다음과 같은 경우 종료
%>
<p></p><a href=bbs/>포럼에 입장</a>
</body>
</html>
2.CheckUserLogin.asp 코드:
<!--#포함 파일=bbs/inc/Dv_ClsMain.asp-->
<%
함수 CheckUserLogin()
희미한 Dvbbs,UserSession
Const 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 = 참
'다음은 일부 사용자 정보를 얻는 방법입니다. 쿠키나 세션에 저장하여 쉽게 사용할 수 있습니다.
'사용자 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(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(버전) = 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)
cameurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
종료 조건
요청(뒤로)=1인 경우 그러면
응답.리디렉션(../index.asp)
종료 조건
희미한 온도 강도
TempStr = template.html(2)
'Dvbbs.Forum_ChanSetting(0)=1 And Dvbbs.Forum_ChanSetting(10)=1 And Dvbbs.Forum_ChanSetting(12)=1이면
' TempStr = 바꾸기(TempStr,{$ray_logininfo},template.html(3))
'또 다른
' TempStr = 바꾸기(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))
응답.Write TempStr
온도Str=
기능 종료
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 = 없음으로 설정
응답.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. 동왕 설정 : 로그인 인증번호를 삭제하면 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을 Cometime으로 선택하고 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 이사회로
다음으로 수정:
Sql=UserID,UserName,UserPassword,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,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid Boardid로 info_1
3. bbs/inc/Dv_ClsMain.asp의 TrueCheckUserLogin 기능에서
Sql=UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin as Cometime,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,userid 이사회로
다음으로 수정:
Sql=UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin as Cometime,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,userid Boardid로 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(신규: & Request.Cookies(info_1) & <br>)
6.확인, 성공적으로 완료되었습니다.