注册 登录
编程论坛 PowerBuilder

PB的登陆验证

rmbwz 发布于 2006-05-18 20:55, 4397 次点击

string pass_word,mangername
string username
mangername=trim(sle_1.text)
pass_word=trim(sle_2.text)
select manger_name
into :username
from manger
where manger_name =: mangername and password =: pass_word
using sqlca;
if try_time < 4 then
if sqlca.sqlcode=0 then
messagebox("登陆成功","欢迎管理员:")
w_main.visible=true
close(parent)
elseif sqlca.sqlcode=100 then
messagebox("警告","输入错误,请再输入一次!!",exclamation!)
sle_1.setfocus()
sle_1.text=''
sle_2.text=''
try_time++;
end if
else
messagebox("系统警告","您尝试登陆的次数超过三次,"+"系统将不允许你登陆(@_@)"+" ,请与管理员联系!!",stopsign!)
cb_1.enabled=false
end if

无论我输入多少次错误,也不出现超过三次尝试的系统警告。希望高手大哥可以指点下。我是一个PB的新手也就一两天。最近在做图书管理系统。希望有这方面的大哥们给些交流意见。我想认识几个朋友。不知道你们是不是嫌弃我。希望你们可以带我走一程。谢谢。如果有意者留下QQ吧。我会加你们的。期待...........

14 回复
#2
rmbwz2006-05-18 20:57
没有人可以帮我下嘛?
#3
ヤ順祺冄繎ヤ2006-05-19 08:55
try_time
是什么变量,私有变量吗?
赋值了没?
还有,你写代码能不能有一点格式,这点对程序员来说很重要.还应有相应的注释.
#4
q1231262006-05-19 17:25
select语句后要加分号,还有就好似你的try_time有初始化吗?
#5
guo2006-05-23 18:48
try_time
要定义成全局变量
#6
rzj762006-07-06 10:56
赞同楼上的意见
#7
fljie2312006-07-09 00:48
try_time
要定义成全局变量
#8
fordcheng2006-07-09 10:33
try_time应为实例变量。
#9
fgypblt2006-07-10 09:35

新手?不错了。呵呵,看得是费劲了点

try_time; //不需分号 在此没看到该变量定义 大概已定义正确适用 同意前几楼说法

另外关于elseif sqlca.sqlcode=100 判断,改为直接else ...较好 。0为找到,100为表空或无符合条件的行,但未排除其他数据库等问题

#10
fljie2312007-06-20 16:07
#11
pbjie2007-06-20 20:55
在sqlca.sqlcode=100 时try_time才会自动加一,要是不等于100时呢,就不会加一了,也就会出现你所说的那种情况.还有try_time也没有初始化.
#12
努力中2007-08-15 07:58
回复:(rmbwz)PB的登陆验证

加我QQ:107911230

#13
西风独自凉2007-08-15 11:24

申明一个变量。。。提示密码错误 时就让变量加一。。。
当变量等于3 时就提示。。。输入密码错误次数超过三。。。

#14
zero19842007-08-18 20:09

定义全局变量 try_time
string pass_word,mangername
string username
mangername=trim(sle_1.text)
pass_word=trim(sle_2.text)
select manger_name
into :username
from manger
where manger_name =: mangername and password =: pass_word
using sqlca;
if try_time < 3 then
if sqlca.sqlcode=0 then
messagebox("登陆成功","欢迎管理员:")
w_main.visible=true
close(parent)
elseif sqlca.sqlcode=100 then
messagebox("警告","输入错误,请再输入一次!!",exclamation!)
sle_1.setfocus()
sle_1.text=''
sle_2.text=''
try_time++;
end if
else
messagebox("系统警告","您尝试登陆的次数超过三次,"+"系统将不允许你登陆(@_@)"+" ,请与管理员联系!!",stopsign!)
cb_1.enabled=false
end if
注意格式 你看看可以吗

#15
gugu07922007-08-23 14:27
try_time应为全局变量
1