注册 登录
编程论坛 VB6论坛

电子通讯录-处女作哦(vb+Access),关于通用密码的问题

kfp_kaka 发布于 2006-02-13 10:17, 7103 次点击

我用vb做的第一个作品,希望大家给点意见,还有就是用vb打开一切正常运行,不过就是不知道为什么在编译成可执行文件时提示错误,希望大家能帮我解决这个问题,谢谢哦~

ID是:admin

密码是:kfp0107

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2006-3-13 16:37:12编辑过]

48 回复
#2
kfp_kaka2006-02-13 10:31

修改一个Bug,就是当进入窗体后查询完记录,双击记录查看详细资料,然后退出主窗体,在菜单栏点修改记录是发生的一个Bug,改正方法是在frmFind窗体的Form里的QueryUnload事件里添加一句代码

ViewJLName = ""

这样就可以解决Bug了

#3
wyyliyi2006-02-13 10:52

不错不错,收了,你已经起飞了

#4
kfp_kaka2006-02-13 14:39

有没有人和我说下为什么我的这个系统会编译不了可执行文件吗?

#5
小伟的小伟2006-02-13 15:26
试试

#6
清洁工2006-02-13 17:34
Public Function TextIsNull(ByVal Text As String) As Boolean
If Left(Trim(Text)) = 0 Then 'Left 改为 Len 就OK了!
TextIsNull = True
Else
TextIsNull = False
End If
End Function

Left(string, length) 中的length是 必要参数

[此贴子已经被作者于2006-2-13 17:39:25编辑过]

#7
kfp_kaka2006-02-13 17:56
哈哈,是这里了,谢谢楼上的哦,我太粗心!
现在问题解决了,不过本来我想在菜单那里添加个帮助按钮的,可是不知道用shell语句要怎么写,
现在只能按F1调出帮助文件
#8
kfp_kaka2006-02-14 00:03
大家可以给我点意见什么的吗?有没有什么可取之处?或者有那些地方是需要改进的?
#9
kfp_kaka2006-02-14 14:41
没人谈谈意见吗?
#10
leon22006-02-14 23:28
Shell "winhelp HELP.CHM", vbNormalFocus
生日提示功能还可以,各方面也较完善~~~~~~~
不过好像查询所有记录的时候有些麻烦,可以将查询条件默认为 <ALL>……
另外登录成功就不用弹出登陆成功框了……
登陆成功的代码其中一句: frmMain.Show vbModal,主窗体没有必要成为模式窗体,而且删掉 vbModal 也不会出错,try过了……暂时还没有看见Bug。

以上全部个人意见。
继续study hard一些
PS: 你生日的第二天就是我生日……
#11
kfp_kaka2006-02-15 09:21
几天没见你上来混了哦~~
哈哈都在忙什么?你84几年的啊?哈哈,我们也挺巧的嘛
#12
leon22006-02-15 12:17
开学了,不能泡网啊
#13
kfp_kaka2006-02-15 14:35

乖孩子,好好学习,天天向上哈!我19号才开学

#14
Smiling2006-02-15 17:43

基本功能是好了,但是代码书写不是很规范,还有登陆成功后可以直接进入系统,弹出的提示框显的有点多余,退出窗体最好用unload me ,而不要用end,那样的话会使整个系统都结束了.还有一些是小的但是应该注意的问题

#15
kfp_kaka2006-02-15 18:06
谢谢楼上的意见,下次我会吸取这些经验的了,努力,继续努力,呵呵~
#16
kfp_kaka2006-02-16 22:55
顶一下,呵呵,不想这么快沉下去
#17
xinfresh2006-02-19 18:30

我觉得我们可以互补一下,以前我贴过一个和你一样功能的小东西,不过,个人认为我写的功能可能会比你好一点,而你的界面和用户易用性比我好很多,有时间交流一下吧.
下面的签名里有我的联系方式.
QQ:51127945
我贴的通讯录你也看过了的在:
https://www.bc-cn.net/bbs/dispbbs.asp?BoardID=6&ID=42889&replyID=&skin=1

#18
kfp_kaka2006-02-19 23:40
好啊,你的作品我也有看过,功能方面我的确是比不上你的,我加你QQ了
#19
wshch05372006-02-24 15:33

点运行程序 出现找不到程序或库 错误,为什么?

#20
清洁工2006-03-13 15:24
最近一直被程序的登录问题所困扰,即:“通用用户名”和“通用密码”问题。

发现楼主提供的这个程序也有类似问题!

现提供针对该程序的一组“通用”用户名和密码,有兴趣的不妨试一下:
(注:这个只是自认为较短小的一组,实际的可行的通用用户名和密码可能有无穷多组……)

用户名:"'or''='"
密码:"#hh*"

补充说明:用户名和密码都以双引号里面的内容为准(不包含双引号),密码中的7个字符对应的AscII码的十进制形式分别为:35 104 104 26 23 42 17
#21
kfp_kaka2006-03-13 15:49
我试了一下,真的可以用楼上的提供的登陆成功哦,有没有什么办法可以补救?
#22
kfp_kaka2006-03-13 16:21
刚刚试了一下清洁工的说法,这主要是用SQL注入来实现的
我该了一下我的程序,用你的那个通用用户名和密码登陆不了了
#23
kfp_kaka2006-03-13 16:23
晕死,上传不到了
#24
kfp_kaka2006-03-13 16:35
只有本站会员才能查看附件,请 登录

大家下载这个,把里面的两个文件覆盖到原来的电子通讯录下面,就可以解决清洁工说的那个问题,
有什么大家一起研究哈
#25
清洁工2006-03-13 16:59
建议对用户名也进行过滤处理,不然……
#26
kfp_kaka2006-03-13 17:04
恩,用户名也要加上处理,
刚刚查了一下资料,是不是可以用Command来处理这个问题的?
#27
shiyide2006-03-18 14:21

楼主可以不可以把这段代码解释一下
Public Function ExecuteSQL(ByVal SQL As String) As ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String

On Error GoTo Error_Do

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\kfp.mdb;Persist Security Info=False"
sTokens() = Split(SQL)

If InStr("INSERT,DELETE,UPDATE", UCase(sTokens(0))) Then
cnn.Execute SQL ----主要是这里
Else
Set rst = New ADODB.Recordset

With rst
.ActiveConnection = cnn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open Trim(SQL)
End With
'rst.Open Trim(SQL), cnn, adOpenStatic, adLockOptimistic
Set ExecuteSQL = rst
End If

Set cnn = Nothing
Set rst = Nothing
Exit Function
Error_Do:
Dim Err_Str As String
Err_Str = "服务器" & Err.Description
If MsgBox(Err_Str, vbRetryCancel + vbCritical, "警告") = vbRetry Then
Resume
Else
Set cnn = Nothing
Set rst = Nothing
End
End If
End Function
还有检测用户名是否存在为什么要这么复杂`?

#28
shiyide2006-03-18 14:23
txtSQL = txtSQL = "select * from Tbl_Users where 用户名 = '" &Trim(txtUserName.Text) & "'"
Set g_tblrct = New ADODB.Recordset
Set g_tblrct = g_dbcon.Execute(txtSQL)
If g_tblrct.EOF = True Then
MsgBox "此用户名不存在!"
Exit Sub
End If
这样不行吗`?
#29
shiyide2006-03-18 14:25
还有为什么我注册用户总是用不了 `
而且把你的那个ADMIN的密码改了也用不了 ` 就进不去了`
#30
shiyide2006-03-18 14:27
还有你那个检测密码三次错误是运行不了的`  不能用DIM来定义 只能用STATIC来定义
#31
sugar87632006-12-20 18:48
我也提一点意见,你的密码限制不起作用,当密码错误输入三次后,不显示“由于多次输入错误,系统将自动关闭,请联系管理员!”这句话,主要是由于count 设置为局部变量,把它改成全局变量就好了
#32
sugar87632006-12-24 13:02
请修改frm_Landing中的一个BUG,当你注册的用户多于一个的时候,输入数据库中的用户名中的任何一个,密码中的任何一个都能登录该系统。因为你登录时检验的用户名和密码不是一致的.
举个例子来说 :我注册了用户名:sugar,密码:555.当我登录时,用户名输入admin,密码输入555时也可以登录。
更改frm_Landing中的cmdOK单击事件程序代码如下:
Private Sub cmdOK_Click()
Dim Encode As String
Dim txtSQL As String
Dim mrc As ADODB.Recordset

If Len(txtUserName) = 0 Then '判断输入是否为空
MsgBox "请输入用户名!", vbOKOnly + vbExclamation, "电子通讯录--提示"
txtUserName.SetFocus
ElseIf Len(txtPWD) = 0 Then
MsgBox "请输入密码!", vbOKOnly + vbExclamation, "电子通讯录--提示"
txtPWD.SetFocus
Else
txtSQL = "select * from Tbl_Users where 用户名 = '" & Trim(txtUserName.Text) & "'" '检验输入用户名是否存在
Set mrc = ExecuteSQL(txtSQL)

If mrc.RecordCount = 0 Then
MsgBox "该用户名不存在,请重新输入!", vbOKOnly + vbExclamation, "电子通讯录--提示"
txtUserName.SetFocus
mrc.Close
Exit Sub
Else

Encode = EncodePassWord(Trim(txtPWD.Text)) '调用加密函数
If mrc.Fields(1) <> Encode Then
MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, "电子通讯录--提示"
TryTime = TryTime + 1
txtUserName.Text = ""
txtPWD.Text = ""
txtUserName.SetFocus
If TryTime = 3 Then
MsgBox "由于多次输入错误,系统将自动关闭,请联系管理员!", vbOKOnly + vbInformation, "电子通讯录--注意"
End
End If
Else
'全部检验正确,进入主窗体
UserName = txtUserName.Text
Unload Me
frmMain.Show
End If
End If
End If
End Sub
#33
p2959359412007-01-10 15:50
怎么编写一个通讯录程序
#34
事业男儿2007-06-08 22:23
我来说两句:要是在各个窗体上加上背景音乐,还有在按按钮的时侯也能发声,在提示生日的时候也放一首音乐来提醒就好了只是随变说说
#35
ouzhiguang2007-06-08 23:34
里面有很多小的BUG不知道发现没有???
#36
事业男儿2007-06-09 10:34
请问楼主以及各位VB的爱好者,电子通讯录生成文件后在没有安装VB的系统上运行时,点击查寻按钮时为何系统提示出错请看下图,等待你们的回复,谢谢!!!!!
只有本站会员才能查看附件,请 登录

#37
王者之风2007-06-12 14:34
#38
事业男儿2007-06-13 13:32
以下是引用事业男儿在2007-6-9 10:34:37的发言:
请问楼主以及各位VB的爱好者,电子通讯录生成文件后在没有安装VB的系统上运行时,点击查寻按钮时为何系统提示出错请看下图,等待你们的回复,谢谢!!!!!

#39
事业男儿2007-06-13 13:33
以下是引用事业男儿在2007-6-13 13:32:48的发言:

#40
那边有朵蘑菇云2007-09-19 11:21

提出个问题
当记录为空时 那些COMMAND是不是要 不能控制啊 或者加个 ON ERROR GOTO *—%¥·#什么的
在记录为空的时候 我按了下NEXT 呵呵 出错 退出了

#41
LuoSZ2007-09-19 15:02
Private Sub YZM()
Dim i As Integer
Randomize
i = Int(Rnd * (9999 - 1000 + 1) + 1000)
Picture1.Cls
Picture1.Print i
Picture1.Tag = i
End Sub
请教一下,以上代码中的Randomize是什么意思?
#42
r2374558542007-09-20 19:24
我在前几个月
在其他 网站下过 和你一模一样的
#43
三断笛2007-09-20 20:08
不错
处女座,难得
#44
wwqwl2007-09-21 06:12
Randomize是产生随机数的序列组,加上这个后每次产生的RND随机数一般都会不相同,否则每次产生的随机数都是相同的
#45
poitg2013-01-05 15:43
不错哦
#46
owwen2013-01-10 12:22
好好学习学习
谢谢
#47
事业男儿2013-09-05 15:54
为什么生日功能无法用,明明填写了当天的生日  点击提示说没有人过生日,我觉得要改一下  改成农历对比提示,因为中国人过生都是以农历过生,希望高手测试一下,并给出农历对比代码这样就很实用。
#48
事业男儿2013-09-06 12:44
回复 楼主 kfp_kaka
为什么生日功能无法用,明明填写了当天的生日  点击提示说没有人过生日,我觉得要改一下  改成农历对比提示,因为中国人过生都是以农历过生,希望高手测试一下,并给出农历对比代码这样就很实用。
#49
lzb31582014-05-21 09:14
发现一个BUG    备注 和 邮件两个框如果不填写内容  你保存后会自动将上一个人的信息保存过来。希望高手帮忙改改,改后就完美了。
1