Discuz!NT 2.5 beta下载测试
类库文档在线查看
Comsenz 招聘信息
首届Discuz!NT 模板大赛圆满结束
著名音乐网站SoGua网、分贝网
采用Discuz!NT搭建社区
FIFA Online2官网论坛使用Discuz!NT
游戏城寨论坛使用Discuz!NT搭建
要灌, 就灌有技术含量的水
一起交流学习ASP.net吧!
17套Discuz!NT界面模板提供下载
Discuz!NT后台截图先睹为快
Discuz!NT文档中心
用户整合说明文档
Discuz!NT亮相微软Tech-Ed 2007
Discuz!NT情景搞笑短片抢先看
1/1页1 跳转到查看:3035
发新话题 回复该主题

[安装] 中国建造师人才网的注册整合经验谈!

中国建造师人才网的注册整合经验谈!

一直以来,没有时间来整理这一段时间以来使用DNT2.0的经验,现在简单的说一下,以下主要说的是按照网上很多办法去解决的时候,需要另外再做一些工作,说人之所未说就行!

整合就意味着要整合登陆以及注册和退出,我的网站结构是这样的,包括中国建造师人才网的人才库、论坛的数据库、建造师问吧的数据库,目前我的登陆与退出没有整合

1、重点谈注册整合,我的人才库为sql数据库,论坛为DNT2.0access数据库
在按照雪人的注册整合思路进行整合时,发现注册总是无法成功,后来把数据库下载下来,直接过行查询语句,也无法插入,即排除了戏水所说的数据库的权限问题,最终发现问题在于,DNT的数据库每一个字段都是必填选项,少一个也无注册成功,明白了这个道理,就动手把DNT数据库的用户的字段,除ID字段外,其余字段均修改为非必填项,再进行注册就可以了

2、下面是注册整合的代码:

'新论坛整合区
dim dnt_name,dnt_email,dnt_password,dnt_birth
dnt_name=pmember_login1  ‘给用户姓名赋值,即你其它数据库的取值
dnt_email=pmember_email1  ‘给用户密码赋值,即你其它数据库的取值

dnt_password=pmember_pwd1‘给用户邮箱赋值,即你其它数据库的取值

dnt_birth=pmember_birth1‘给用户生日赋值,即你其它数据库的取值,其余变量设定初始值即可!



'下面的代码摘自于DNT论坛,版权归原作者作有,本人权修必了其中的变量,可以做到只要修改以上的四个变量,即可以把以上的代码插入进去就可以运行的形式。

Private Function getIP() 
        Dim strIPAddr 
        If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then 
          strIPAddr = Request.ServerVariables("REMOTE_ADDR") 
          ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then 
            strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) 
          ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then 
            strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) 
        Else 
          strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
        End If 
        getIP = Trim(Mid(strIPAddr, 1, 30)) 
    End Function


set sqlconn=server.createobject("adodb.connection")
sqlconn.open "DBQ="&server.mappath("请在此处填入数据库的路径")&";driver={microsoft access driver (*.mdb)}"
'-----------下以是网站全站信息-----------
set sqlrs=server.createobject("adodb.recordset")
        '判定discuz用户表中是否存在当前用户名,如果存在则跳过。
        sqlsql1="select * from dnt_users where username='"&dnt_name&"'"
        sqlrs.open sqlsql1,sqlconn,1,3
        if sqlrs.eof or sqlrs.bof then
            '用户名不存在,新建,先定入dnt_users
            sqlrs.addnew
            sqlrs("username")=dnt_name
            sqlrs("password")=dnt_password       
            sqlrs("nickname")=dnt_name
            sqlrs("email")=dnt_email     
            sqlrs("groupid")=10  '默认用户组'
            sqlrs("regip")=getIP()
            sqlrs("lastip")=getIP()
            sqlrs("sigstatus")=1 
            sqlrs("pmsound")=1
            sqlrs("showemail")=1
            sqlrs("newsletter")=1
            sqlrs("newpm")=1
            sqlrs("onlinestate")=1
            sqlrs("newpmcount")=0
            sqlrs("extcredits1")=100
            sqlrs("extcredits2")=100
            sqlrs("credits")=200
            sqlrs("templateid")=0
            sqlrs("bday")=dnt_birth 

            sqlrs.update
            sqlrs.close
            '获取UID
            sqlrs.open "select * from dnt_users where username='"&dnt_name&"' and email='"&dnt_email&"'",sqlconn,1,1
            saveuid=sqlrs("uid")
         
                     
            sqlrs.close
            '在dnt_userfields表添加uid对应的新记录,这样的用户数据才是完整的。
            sqlrs.open "select * from dnt_userfields",sqlconn,1,3
            sqlrs.addnew
            sqlrs("uid")=saveuid
            sqlrs.update
           
            '最后,修改论坛状态表。
            sqlrs.close   
            sqlrs.open "select * from dnt_statistics",sqlconn,1,3
            sqlrs("totalusers")=sqlrs("totalusers")+1  '用户总数+1
            sqlrs("lastusername")=dnt_name                '最后注册用户名
            sqlrs("lastuserid")=saveuid                '最后注册用户ID
            sqlrs.update   
        end if
        sqlrs.close 
        sqlconn.close
        set sqlconn=nothing 

最后一个步骤,由于我的主站和重点功能是人才网,而论坛只是一部分,所以屏蔽掉论坛的注册即可,办法如下:
搜索模板目录下所有含有注册二字的页面,将其中的注册链接网址,导向你自己的注册页面并重新生成模板就好了!

3、注册登陆和退出整合

其实思路很简单,登陆的时候向login.aspx传递用户名及密码参数即可,退出时向LOGINOUT.aspx传递用户名即可,但是asp的response.redirect的转向页面比较烦琐,可能采用其它的方式会好一些,我不是太喜欢用户转来转去的,所以放弃了登陆和退出的整合,把注册整合了,娄据库统一了我就感觉够了!

但要是真的能实现登陆整合是最好的,希望能有其它更好的办法。

演示网站:www.jzrc.net/bbs2,中国建造师人才网论坛
如果是采用同样的access数据库的同行可以多交流!
本帖被评分 1 次
<a href="http://www.jzrc.net">中国建造师人才网,专业的建造师人才交流平台</a>

TOP

 

回复:中国建造师人才网的注册整合经验谈!

写的不错 。 加分 加精华
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复:中国建造师人才网的注册整合经验谈!

实在是不错的说,相信很多人都有这个想法。。学习啦

TOP

 

回复:中国建造师人才网的注册整合经验谈!

顶!

TOP

 

回复:中国建造师人才网的注册整合经验谈!

api写的那么详细,应该没问题咯

TOP

 
1/1页1 跳转到
发表新主题 回复该主题