Discuz!NT論壇整合ASP程式論壇教程

來源:互聯網
上載者:User
程式|教程|論壇|discuz|整合

本教程所需檔案包下載: http://www.alixixi.com/download/dll.rar

1.在你的論壇bin目錄裡建立一個目錄,名稱如DLL(不一定建立在bin目錄裡,不過推薦在此建立)

2.把DLL目錄裡的所有檔案上傳到你論壇的bin/DLL目錄裡

3.用記事本開啟"註冊DLL組件.bat"檔案,編輯裡面的D:\DiscuzNT\bin\DLL\RegAs為你的網站絕對路徑

4.修改後儲存檔案,退出記事本,然後雙擊該檔案即註冊成功

5.註冊成功後可把DiscuzNT.dll和DiscuzNT.tlb檔案除外的其他檔案全部刪除

以下是引用片段:
DISCUZ NT 2.0 asp完美整合(不需要改動bbs任何代碼)
示範:http://www.yuwuxian.com
下載:http://www.8765432.cn
同時感謝"永不放棄"編寫DLL檔案
琪琪小子 - QQ:231888
======================================================================================
登陸時記錄cookies頁面代碼
<!--#include file="md5.asp"--> //32位md5加密檔案,一定得調用,該檔案到處有,我就不提供了
<%
dim Username,Password,Question,Answer,Expires,Verify
Username=replace(trim(Request.form("Username")),"’","’’") //使用者名稱
Password=replace(trim(Request.form("Password")),"’","’’") //使用者密碼
Question=replace(trim(Request.form("Question")),"’","’’") //密碼問題
Answer=replace(trim(Request.form("Answer")),"’","’’")  //密碼答案
Expires=replace(trim(Request.form("Expires")),"’","’’")  //cookies記錄時間長度
Verify=replace(trim(Request.form("Verify")),"’","’’")  //驗證碼
//此處加上提交的驗證,如xxx不可為空等或欄位長度等
sql="select * from [dnt_users] where username=’"&Username&"’" //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
set rs=conn.execute(sql)
if rs.eof then 
 Response.Write ("<script>alert(’提示!\n\n使用者帳號錯誤!’);history.back();</script>")
 Response.end
else
 if rs("password")<>md5(Password) then
  Response.Write ("<script>alert(’提示!\n\n使用者密碼錯誤!’);history.back();</script>")
  Response.end
 else
  if rs("secques")<>Answer then
   Response.Write ("<script>alert(’提示!\n\n安全答案錯誤!’);history.back();</script>")
   Response.end
  else
   Dim DES,DESCode
    Set DES=Server.CreateObject("DiscuzNT.DES")
    DESCode=DES.Encode(""&rs("password")&"","Z143D2VBML") //Z143D2VBML為你的DES加密金鑰,請用記事本開啟CONFIG目錄裡的general.config檔案,找到<Passwordkey>Z846D4VVZL</Passwordkey>這行,<Passwordkey>與</Passwordkey>中間的英文就是你的密鑰,把密鑰修改成你的檔案的
   Set DES=Nothing 
   Response.Cookies("dnt")("userid") = rs("uid")
   Response.Cookies("dnt")("password") = DESCode
   Response.Cookies("dnt")("tpp") = rs("tpp")
   Response.Cookies("dnt")("ppp") = rs("ppp")
   Response.Cookies("dnt")("pmsound") = rs("pmsound")
   Response.Cookies("dnt")("invisible") = rs("invisible")
   Response.Cookies("dnt")("referer") = "index.aspx"
   Response.Cookies("dnt")("sigstatus") = rs("sigstatus")
   Response.Cookies("dnt")("expires") = Expires
   if Expires<>0 then
    Response.Cookies("dnt").Expires = DateAdd("N", Expires, Now())
   end if
   Response.Cookies("dnt").Domain = ".xxx.com" //修改為你的網域名稱,注意前面帶.(點)
   Response.Cookies("dnt").Secure = False
  end if
 end if
end if
rs.close
set rs=nothing
//此處加登陸後轉向或向其他動作,具體你自己看著辦
%>



===========================================================================================
註冊頁面代碼(註冊完後同時登陸狀態)

<!--#include file="md5.asp"--> //32為md5加密檔案,一定得調用,該檔案到處有,我就不提供了
<%
dim Username,Password,CheckPassword,Email,Question,Answer,Verify
Username=replace(trim(Request.form("Username")),"’","’’")  //使用者名稱
Password=replace(trim(Request.form("Password")),"’","’’")  //使用者密碼
CheckPassword=replace(trim(Request.form("CheckPassword")),"’","’’") //密碼驗證
Question=replace(trim(Request.form("Question")),"’","’’")  //密碼問題
Answer=replace(trim(Request.form("Answer")),"’","’’")   //密碼答案
Expires=replace(trim(Request.form("Expires")),"’","’’")   //cookies記錄時間長度
Verify=replace(trim(Request.form("Verify")),"’","’’")   //驗證碼
//此處加上提交的驗證,如xxx不可為空等或欄位長度等
sql="select * from [dnt_users] where username=’"&Username&"’" //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
set rs=conn.execute(sql)
if not rs.eof then
 Response.Write ("<script>alert(’提示!\n\n使用者帳號已被註冊使用!’);history.back();</script>")
 Response.end
end if
rs.close
set rs=nothing
sql="select * from [dnt_users] where Email=’"&Email&"’" //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
set rs=conn.execute(sql)
if not rs.eof then
 Response.Write ("<script>alert(’提示!\n\n電子郵箱已被註冊使用!’);history.back();</script>")
 Response.end
end if
rs.close
set rs=nothing
ip = request.servervariables("http_x_forwarded_for") 
if ip = "" then ip = request.servervariables("remote_addr")
sql="insert into [dnt_users] (username,nickname,password,secques,gender,adminid,groupid,groupexpiry,extgroupids,regip,joindate,lastip,lastvisit,lastactivity,lastpost,lastpostid,lastposttitle,posts,digestposts,oltime,pageviews,credits,extcredits1,extcredits2,extcredits3,extcredits4,extcredits5,extcredits6,extcredits7,extcredits8,avatarshowid,email,bday,sigstatus,tpp,ppp,templateid,pmsound,showemail,newsletter,invisible,newpm,newpmcount,accessmasks,onlinestate) values (’"&Username&"’,’                    ’,’"&MD5(Password)&"’,’"&Answer&"’,0,0,10,0,’                                                            ’,’"&ip&"’,’"&now()&"’,’"&ip&"’,’"&now()&"’,’"&now()&"’,’"&now()&"’,0,’                                                            ’,0,0,0,0,0,’0.00’,’0.00’,’0.00’,’0.00’,’0.00’,’0.00’,’0.00’,’0.00’,0,’"&Email&"’,’          ’,1,0,0,0,1,1,1,0,1,1,0,1)"
set rs=conn.execute(sql)
sql="select uid from [dnt_users] where username=’"&Username&"’"  //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
set rs=conn.execute(sql)
Uid=rs(0)
sql="insert into [dnt_userfields] (uid,avatar,avatarwidth,avatarheight,authtime,authflag) values (’"&Uid&"’,’avatars\common\0.gif’,0,0,’"&now()&"’,0)"
set rs=conn.execute(sql)
sql="update [dnt_statistics] set totalusers=totalusers+1,lastusername=’"&Username&"’,lastuserid=’"&Uid&"’"
set rs=conn.execute(sql)
sql="select * from [dnt_users] where username=’"&Username&"’" //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
set rs=conn.execute(sql)
if rs.eof then 
 Response.Write ("<script>alert(’提示!\n\n使用者帳號錯誤!’);history.back();</script>")
 Response.end
else
 if rs("password")<>md5(Password) then
  Response.Write ("<script>alert(’提示!\n\n使用者密碼錯誤!’);history.back();</script>")
  Response.end
 else
  Dim DES,DESCode
   Set DES=Server.CreateObject("DiscuzNT.DES")
   DESCode=DES.Encode(""&rs("password")&"","Z143D2VBML") //Z143D2VBML為你的DES加密金鑰,請用記事本開啟CONFIG目錄裡的general.config檔案,找到<Passwordkey>Z846D4VVZL</Passwordkey>這行,<Passwordkey>與</Passwordkey>中間的英文就是你的密鑰,把密鑰修改成你的檔案的
  Set DES=Nothing 
  Response.Cookies("dnt")("userid") = rs("uid")
  Response.Cookies("dnt")("password") = DESCode
  Response.Cookies("dnt")("tpp") = rs("tpp")
  Response.Cookies("dnt")("ppp") = rs("ppp")
  Response.Cookies("dnt")("pmsound") = rs("pmsound")
  Response.Cookies("dnt")("invisible") = rs("invisible")
  Response.Cookies("dnt")("referer") = "index.aspx"
  Response.Cookies("dnt")("sigstatus") = rs("sigstatus")
  Response.Cookies("dnt")("expires") = 0
  Response.Cookies("dnt").Domain = ".xxx.com" //修改為你的網域名稱,注意前面帶.(點)
  Response.Cookies("dnt").Secure = False
 end if
end if
rs.close
set rs=nothing
//此處加註冊後轉向或向另外一個使用者表添加同步處理的使用者資料,具體你自己看著辦
%>



===========================================================================================
編輯頁面代碼(編輯密碼後無需重新登陸)

<!--#include file="md5.asp"--> //32為md5加密檔案,一定得調用,該檔案到處有,我就不提供了
<%
dim Username,Password,CheckPassword,Email,Question,Answer,Verify
Username=replace(trim(Request.form("Username")),"’","’’")  //使用者名稱
Password=replace(trim(Request.form("Password")),"’","’’")  //使用者密碼
CheckPassword=replace(trim(Request.form("CheckPassword")),"’","’’") //密碼驗證
Question=replace(trim(Request.form("Question")),"’","’’")  //密碼問題
Answer=replace(trim(Request.form("Answer")),"’","’’")   //密碼答案
Expires=replace(trim(Request.form("Expires")),"’","’’")   //cookies記錄時間長度
Verify=replace(trim(Request.form("Verify")),"’","’’")   //驗證碼
//此處加上提交的驗證,如xxx不可為空等或欄位長度等
if Password<>"" then
 if Password<>CheckPassword then
  Response.Write ("<script>alert(’提示!\n\n驗證密碼與使用者密碼不相同!’);history.back();</script>")
  Response.end
 end if
 Password=MD5(Password)
else
 Password=U_Password //U_Password為你的32位MD5加密密碼,在驗證時讀取出來用來這裡驗證
end if
if AnswerTrue="true" then
 if Question<>0 then
  Answer=mid(MD5(Answer+MD5(Question)),16,8)
 else
  Answer="        "
 end if
else
 Answer=U_Secques //U_Secques為你的密碼答案,在驗證時讀取出來用來這裡驗證
end if
ip = request.servervariables("http_x_forwarded_for") 
if ip = "" then ip = request.servervariables("remote_addr")
sql="select * from [dnt_users] where username=’"&Username&"’"  //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
set rs=Conn.execute(Sql)
If Rs.eof then
 Response.Write ("<script>alert(’提示!\n\n使用者帳號錯誤!’);history.back();</script>")
 Response.end
else
 sql="select * from [dnt_users] where email=’"&Email&"’ and username<>’"&Username&"’"  //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
 set rs=conn.execute(sql)
 if not rs.eof then
  response.write ("<script>alert(’友情提示!\n\n郵箱已被使用!’);history.back();</script>")
  response.end
 else
  sql="update [dnt_users] set password=’"&Password&"’,secques=’"&Answer&"’,email=’"&Email&"’ where username=’"&Username&"’"  //為了方便,此處我就不加過濾函數了,如你使用時一定加上,否則被注入
  set rs=conn.execute(sql)
  Set DES=Server.CreateObject("DiscuzNT.DES")
   DESCode=DES.Encode(""&Password&"","Z143D2VBML") //Z143D2VBML為你的DES加密金鑰,請用記事本開啟CONFIG目錄裡的general.config檔案,找到<Passwordkey>Z846D4VVZL</Passwordkey>這行,<Passwordkey>與</Passwordkey>中間的英文就是你的密鑰,把密鑰修改成你的檔案的
  Set DES=Nothing 
  Response.Cookies("dnt")("userid") = rs("uid")
  Response.Cookies("dnt")("password") = DESCode
  Response.Cookies("dnt")("tpp") = rs("tpp")
  Response.Cookies("dnt")("ppp") = rs("ppp")
  Response.Cookies("dnt")("pmsound") = rs("pmsound")
  Response.Cookies("dnt")("invisible") = rs("invisible")
  Response.Cookies("dnt")("referer") = "index.aspx"
  Response.Cookies("dnt")("sigstatus") = rs("sigstatus")
  Response.Cookies("dnt")("expires") = 0
  Response.Cookies("dnt").Domain = ".xxxx.com" //修改為你的網域名稱,注意前面帶.(點)
  Response.Cookies("dnt").Secure = False
 end if
end if
rs.close
set rs=nothing
//此處加編輯後轉向或向另外一個使用者表添加同步處理的使用者資料,具體你自己看著辦
%>


=============================================================================================
退出驗證cookies頁面代碼

<%
Response.Cookies("dnt")("userid") = ""
Response.Cookies("dnt")("password") = ""
Response.Cookies("dnt")("tpp") = ""
Response.Cookies("dnt")("ppp") = ""
Response.Cookies("dnt")("pmsound") = ""
Response.Cookies("dnt")("invisible") = ""
Response.Cookies("dnt")("referer") = ""
Response.Cookies("dnt")("sigstatus") = ""
Response.Cookies("dnt")("expires") = ""
Response.Cookies("dnt").Expires = ""
Response.Cookies("dnt").Domain = ".xxx.com"
Response.Cookies("dnt").Secure = False
Response.Write ("<script>alert(’提示!\n\n使用者登出登陸完畢!’);self.opener.location.reload();window.close();</script>")
Response.end
%>


==============================================================================================
驗證cookies頁面代碼,這是我為了簡單隨手寫的一段驗證代碼,基本都是大同小異,具體你根據你的asp程式驗證檔案來修改
%>
Dim DES,DESCode
Set DES=Server.CreateObject("DiscuzNT.DES")
 DESCode=DES.Decode(""&request.cookies("dnt")("password")&"","Z143D2VBML") //Z143D2VBML為你的DES加密金鑰,請用記事本開啟CONFIG目錄裡的general.config檔案,找到<Passwordkey>Z846D4VVZL</Passwordkey>這行,<Passwordkey>與</Passwordkey>中間的英文就是你的密鑰,把密鑰修改成你的檔案的
Set DES=Nothing
//下面是讀取資料庫來驗證你的cookies是否正確
dim U_UId,U_UserName,U_Password,U_Secques,U_Email
Sql="select uid,username,password,secques,email from [dnt_users] where uid=’"&request.cookies("dnt")("userid")&"’ and password=’"&DESCode&"’" //為了方便,cookies使用者和密碼我就不加過濾函數了,如你使用時一定加上,否則被注入,就過濾些單引號及一些比較敏感的就可以了
Set Rs=Conn.execute(Sql)
if not rs.eof then
 founduser  = true
 U_UId  = Rs(0)
 U_UserName = Rs(1)
 U_Password = Rs(2)
 U_Secques = Rs(3)
 U_Email = Rs(4)
else
 founduser  = false
end if
rs.close
set rs=nothing
%>



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.