| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:寻求一段用户登陆时核对用户名的程序
只看楼主 加入收藏
sniperzhao
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:9 
寻求一段用户登陆时核对用户名的程序

哪位又 核对用户名和密码的 源代码?

Acess 或是 SQL Server 2000 的都行,谢了先

搜索更多相关主题的帖子: 源代码 SQL 用户名 核对 
2006-03-30 13:41
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 

Private Sub cmd_submit_Click()

dt_name = check(tt_name)
dt1_pwd = check(tt_pwd.Text)
dt_code = check(tt_code)
If dt_name = "" Or dt1_pwd = "" Or dt_code = "" Then
MsgBox "对不起,请输入完整信息!", vbOKOnly, "错误!"
tt_name.SetFocus
Else
If dt_code <> rndcode Then
MsgBox "对不起,您输入的验证码不正确!", vbOKOnly, "错误!"
tt_code.Text = ""
Else
If conn() Then
dt_pwd = md5(check(tt_pwd.Text))

If openrs("select * from admin where user_name='" + dt_name + "' and user_pwd='" + dt_pwd + "'") Then
If Not (rs.eof And rs.bof) Then
If rs!user_grade = "admin" Then
fm_admin.Visible = True '如果数据库中用户等级是管理员,则转到管理员管理窗口
Else
If rs!user_grade = "user" Then
fm_user.Visible = True '如果数据库中的用户等级是普通用户,则转到普通用户管理窗口
End If
End If
username = rs!user_name
'MsgBox username
Unload fm_login
Else
MsgBox "对不起,您输入的用户名或密码错误!", vbOKOnly, "错误!"
tt_name.SetFocus
End If
Else
MsgBox "数据库连接错误!解决方案请于软件制作人联系", vbOKOnly, "错误!"
End
End If
End If
End If
End If
End Sub


以上是在窗体里写的


祝天下所有母亲幸福安康!~
2006-03-30 14:15
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 

Option Explicit
Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public rspt As ADODB.Recordset
Public a As String


Public Function conn() As Boolean
Set cn = New Connection
On Error GoTo cnerr
Dim connect As Boolean
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\system.ini;"
cn.ConnectionTimeout = 20
cn.Open
conn = True
Exit Function
cnerr:
conn = False
MsgBox Err.Description
End Function

Public Function openrs(ByVal sqlstr As String) As Boolean
Set rs = New Recordset
On Error GoTo rserr
rs.Open sqlstr, cn, adOpenDynamic, adLockOptimistic, -1
openrs = True
Exit Function
rserr:
openrs = False
MsgBox Err.Description
End Function


以上是在类模块中写的


祝天下所有母亲幸福安康!~
2006-03-30 14:16
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 
谨供参考


用的因为我用到了MD5和一个自己写的随机函数,代码没包含在内

祝天下所有母亲幸福安康!~
2006-03-30 14:17
sniperzhao
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-3-5
收藏
得分:0 
哈哈,谢谢你的帮助,MM斑竹

其实我要的就是你其中的一条语句

openrs("select * from admin where user_name='" + dt_name + "' and user_pwd='" + dt_pwd + "'")

我的程序调试出来了,但是我有一点理解不透

就是为什么 用 user_name='" + dt_name + "' 为什么要这么用?

而我用 user_name like 'dt_name' 就不行呢??

2006-03-30 16:09
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 

字符串和变量连接就要用+连接
你的dt_name要是变量的话就需要+号
同样
变量和字符串连接也要用+

"select * from admin where user_name='" + dt_name + "' and user_pwd='" + dt_pwd + "'"
这个可以分成几个部分
1,"select * from admin where user_name='" 字符串
2, + dt_name + 变量
3,"' and user_pwd='" 字符串
4,变量 + dt_pwd +
5,"'"


因为SQL语句的需要,所以要用到单引号,不过单引号相当于字符串


告诉你最简单的调试方法
就是输出你的SQL语句

看看输出的结果和你期望的结果是不是一样
这样很实用的


祝天下所有母亲幸福安康!~
2006-03-30 16:15
sniperzhao
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-3-5
收藏
得分:0 
MM斑竹不愧是 用 ASP 编写论坛代码的高手哦

讲解问题也这么透彻,谢了先,不过照你的意思
"select * from admin where user_name='" + dt_name + "' and user_pwd='" + dt_pwd + "'"

"select * from admin where user_name='dt_name ' and user_pwd=' dt_pwd '"
等价吧,

但是调试出错哦,为啥哩??

2006-03-30 17:23
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 
"select * from admin where user_name='dt_name ' and user_pwd=' dt_pwd '"
这个代表你的dt_name和dt_pwd都是常量,是字符串
你好好看看6楼的解释吧

祝天下所有母亲幸福安康!~
2006-03-30 17:34
sniperzhao
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-3-5
收藏
得分:0 
明白了,是我又点笨!

2006-03-30 17:43
lwq81112
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-8-13
收藏
得分:0 
Public cnt As New ADODB.Connection
Public Function cotToSerer() As Boolean
On Error GoTo err
cnt.CursorLocation = adUseClient
cnt.Open "file name=" & App.Path & "\myudl.udl"
cotToSerer = True
Exit Function
err:
cotToSerer = False
MsgBox "错误代码:" & err.Number & vbCrLf & "错误描述:" & err.Description, vbCritical + vbOKOnly, "连接错误"
End Function
Public Function cutToServer() As Boolean
On Error GoTo err
If rs.State = adStateOpen Then
rs.Close
rs = True
End If
err:
cutToServer = False
MsgBox "错误提示:" & err.Number & err.Description
End Function

Sub main()
If cotToSerer = False Then End
login.Show
End Sub
Public Function longins(ByVal USname As String, ByVal psw As String) As Boolean
Dim rs As New ADODB.Recordset
Dim strSql As String
strSql = "select * from EmployeeDatum where UserName='" & USname & "' and Password='" & psw & "'"
' If cit.State = 1 Then
' cit.Close
' End If
rs.Open strSql, cnt, adOpenDynamic, adLockBatchOptimistic, adCmdText
If Not rs.EOF Then
longins = True
strUserName = rs.Fields("UserName")
Popedom = rs.Fields("job")
default.StatusBar1.Panels(2).Text = "姓名:" & strUserName
default.StatusBar1.Panels(3).Text = "职位:" & Popedom
default.StatusBar1.Panels(4).Text = "今天是:" & Date
If Popedom = "经理" Then
default.NewPlan.Enabled = True
default.SelfPlan.Enabled = True
default.PerusePlan.Enabled = True
default.IssuanceAnnounce.Enabled = True
default.ManageAnnounce.Enabled = True
default.PeruseAnnounce.Enabled = True
default.newPers.Enabled = True
default.EmployeeRecord.Enabled = True
default.IndividualRecord.Enabled = True
Else
default.NewPlan.Enabled = False
default.SelfPlan.Enabled = False
default.PerusePlan.Enabled = True
default.IssuanceAnnounce.Enabled = False
default.ManageAnnounce.Enabled = False
default.PeruseAnnounce.Enabled = True
default.newPers.Enabled = False
default.EmployeeRecord.Enabled = False
default.IndividualRecord.Enabled = True
End If
Else
longins = False

End If
rs.Close

End Function
2006-04-03 14:44
快速回复:寻求一段用户登陆时核对用户名的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039045 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved