关于用户登陆窗口的代码

Karl_He 2003-03-26 04:31:50
请大家帮忙分析一下我代码中的错误,现在不管在文本框输入什么,都只有 "不要开玩笑,一定要输入" 这句警告,这句话本来只是针对什么都不输入,而能进入的漏洞.清高首赐教.

use "管理员.dbf"
if thisform.text1.value='' or thisform.text2.value=''
result=messagebox("不要开玩笑,一定要输入",4+32,"警告")
else
locate for alltrim(管理员.姓名)=alltrim(thisform.text1.value);
and alltrim(管理员.密码)=alltrim(thisform.text2.value)
if found()
do "main.prg"
Thisform.release
messagebox("欢迎你,"+thisform.text1.value,4+32,"欢迎")
else
result=messagebox("请输入正确的用户名和密码",4+32,"警告")
if result=6
thisform.text1.value=""
thisform.text2.value=""
endif
endif
endif
...全文
59 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangbd8 2003-03-28
  • 打赏
  • 举报
回复
根据我的经验,判断字符串为空最好用长度进行判断:
1、string=''的形式,结果永真。
2、empty(string)的形式,当字符串的值为空格时可能会出错。
所以建议采用以下形式:len(alltrim(string))=0进行判断
oishi 2003-03-28
  • 打赏
  • 举报
回复
if thisform.text1.value='' or thisform.text2.value=''
这样的条件行吗!
你在text1中输入时,text2没有数据
当然会提示了!
应该把你个条件分开呀!
nononono 2003-03-28
  • 打赏
  • 举报
回复
看看set exact on/off的说明
冲锋游侠 2003-03-28
  • 打赏
  • 举报
回复
我不同意上一楼的说法,alltrim是消除字符串的前后空格,如果string是空格,那么empty(alltrim(string))的值一定为.T.,比较字符串时,可以用“==”进行精确比较。需要注意的是:string!=""的值一定为.F.
welleasy 2003-03-27
  • 打赏
  • 举报
回复
加上
set exact on
和上边几位的方法修改!
nononono 2003-03-27
  • 打赏
  • 举报
回复
ALLT(thisform.text1.value)=='' or ALLT(thisform.text2.value)==''
enlic_jean 2003-03-27
  • 打赏
  • 举报
回复
ALLT(thisform.text1.value)='' or ALLT(thisform.text2.value)=''
haona 2003-03-27
  • 打赏
  • 举报
回复
set exact on
IF ALLT(thisform.text1.value)='' or ALLT(thisform.text2.value)=''
.................
.................



nononono 2003-03-26
  • 打赏
  • 举报
回复
if empty(thisform.text1.value) or empty(thisform.text2.value) 会报错

==>

if empty(thisform.text1.value) .or. empty(thisform.text2.value)
Karl_He 2003-03-26
  • 打赏
  • 举报
回复
居验证,
if empty(thisform.text1.value) or empty(thisform.text2.value) 会报错

改为以下则可:

if empty(thisform.text2.value)
result=messagebox("不要开玩笑,一定要输入",4+32,"警告")
.................
nononono 2003-03-26
  • 打赏
  • 举报
回复
if empty(thisform.text1.value) or empty(thisform.text2.value)
result=messagebox("不要开玩笑,一定要输入",4+32,"警告")
.................



注意,在默认情况下,表达式 'abc'=''、'abc'='a'、'abc'='ab' 总是为.t.。

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧