CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

验证用户登录的问题!保证给分!

楼主kigy(阿群)2001-08-21 11:03:44 在 C++ Builder / 基础类 提问

我自己设计了一个输入用户名和密码的窗体:TForm1,下面是登陆按钮的代码:  
   
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
            AnsiString   username,pwd;  
            username=Edit1->Text;//Edit1   为用户名输入框  
            ADOQuery1->SQL->Text="select   *   from   administrator   where     administrator='abc'";//现在只能固定用户名为'abc',主要问题就在这  
            ADOQuery1->Active=true;  
            pwd=Edit2->Text;//Edit2   为密码输入框  
            if   (DBEdit1->EditText==pwd)//不好意思,我不太熟悉怎么核对密码,就拉了  
                                                                  //TDBEdit   让他显示数据库表中的密码(当然  
                                                                  //我已经让这个控件隐藏了)再跟用户输入  
                                                                  //的密码进行比较,高手们,顺便指示一个简单  
                                                                  //方法喽  
                    this->Close();//核对正确,关闭本窗体  
   
  我想把   “select   *   from   administrator   where     administrator=”和   username串接起来,送给ADOQuery1->SQL->Text;然后开始执行统一查询;  
  但是怎么做语法都不对!  
   
  请为该怎么做??  
  非常非常地感谢!!!!!!!  
   
  } 问题点数:32、回复次数:14Top

1 楼gloom(苍狗白云)回复于 2001-08-21 11:08:56 得分 0

upTop

2 楼kigy(阿群)回复于 2001-08-21 11:12:47 得分 0

c++   builder   里的高手比vc里的少多了!  
  还请大虾帮忙啊Top

3 楼yuyulily(打工仔)回复于 2001-08-21 11:19:28 得分 0

ADOQuery1->SQL->Text="select   *   from   administrator   where     administrator=“+username;Top

4 楼LuoGD(抢第一楼)回复于 2001-08-21 11:21:07 得分 10

void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
          AnsiString   username,pwd;  
          username=Edit1->Text;//Edit1   为用户名输入框  
          if(ADOQuery1->Active)   ADOQuery1->Close();  
          ADOQuery1->Sql->Clear();  
          ADOQuery1->SQL->Add("select   *   from   administrator   where       administrator='");  
          ADOQuery1->SQL->Add(username);  
          ADOQuery1->SQL->Add("'");  
          ADOQuery1->ExecSQL();  
          ADOQuery1->Open();  
   
  ......  
             
  Top

5 楼wangledong(雪山之鹰)回复于 2001-08-21 11:26:36 得分 0

ADOQuery1->SQL->Text="select   *   from   administrator   where     administrator='"+username+"'"  
  就可以了!Top

6 楼huangbai(黄柏)回复于 2001-08-21 11:28:15 得分 0

如果对系统安全性要求不高的话,可以用以上代码,  
  否则,以上代码一定不能用。  
  ADOQuery可以这样做:  
  ADOQuery1->SQL->Text="select   *   from   administrator   \    
                                              where     administrator='"+username+"'";  
  不知是否对。  
  Top

7 楼HEROIN(HEROIN)回复于 2001-08-21 11:33:14 得分 0

假设我输入的用户名为       xyx'   or   administrator<>'         会出现什么效果?  
   
  呵呵,钻牛角尖了Top

8 楼XioGua(明日复明日)回复于 2001-08-21 11:36:06 得分 0

这种方法进行登录验证,在TRW下更本无处遁形...  
   
  哈哈~~~~Top

9 楼wangledong(雪山之鹰)回复于 2001-08-21 11:42:15 得分 2

因该不允许用户输入"'"和"<"">"等关键字符!Top

10 楼sjz9521(笨笨)回复于 2001-08-21 11:56:32 得分 20

void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
          AnsiString   username,pwd;  
          username=Edit1->Text;//Edit1   为用户名输入框  
          ADOQuery1->SQL->Text="select   *   from   administrator   where     administrator='abc'";//现在只能固定用户名为'abc',主要问题就在这  
          ADOQuery1->Active=true;  
          pwd=Edit2->Text;//Edit2   为密码输入框  
  /******************************************  
      if(Trim(ADOQuery1->Fields-Fields[0]->AsString)==Trim(Edit2->Text))  
  /******************************************  
   
          if   (DBEdit1->EditText==pwd)//不好意思,我不太熟悉怎么核对密码,就拉了  
                                                                  //TDBEdit   让他显示数据库表中的密码(当然  
                                                                  //我已经让这个控件隐藏了)再跟用户输入  
                                                                  //的密码进行比较,高手们,顺便指示一个简单  
                                                                  //方法喽  
                  this->Close();//核对正确,关闭本窗体  
   
  我想把   “select   *   from   administrator   where     administrator=”和   username串接起  
  /***********************  
      select   *   from   administrator   where     administrator='abc'   and   username='"+Trim(Edit2->Text)+"'  
  /**********************  
  来,送给ADOQuery1->SQL->Text;然后开始执行统一查询;  
  但是怎么做语法都不对!  
   
  请为该怎么做??  
  非常非常地感谢!!!!!!!  
   
  }Top

11 楼huangbai(黄柏)回复于 2001-08-21 12:38:58 得分 0

是什么语法都不对?  
  把Erro   Message贴上来吧!Top

12 楼kigy(阿群)回复于 2001-08-21 12:47:32 得分 0

我已经会了:  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
            AnsiString   username,pwd;  
            username=Edit1->Text;  
     
            ADOQuery1->SQL->Clear();  
            ADOQuery1->SQL->Add("select   *   from   administrator");  
            ADOQuery1->SQL->Add("where     administrator="   +   QuotedStr(username));  
            ADOQuery1->Active=true;  
            pwd=Edit2->Text;  
            if   (DBEdit1->EditText==username)  
                if   (DBEdit2->EditText==pwd)  
                      {if   (username!="")  
                              this->Close();  
                        else  
                              {  
                                Edit1->Text="";  
                                Edit2->Text="";  
                                ADOQuery1->Active=false;  
                                ADOQuery1->SQL->Clear();  
                              }  
                        }  
   
  }  
   
  下面进行给粉!Top

13 楼kigy(阿群)回复于 2001-08-21 12:48:22 得分 0

我已经会了:  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
            AnsiString   username,pwd;  
            username=Edit1->Text;  
     
            ADOQuery1->SQL->Clear();  
            ADOQuery1->SQL->Add("select   *   from   administrator");  
            ADOQuery1->SQL->Add("where     administrator="   +   QuotedStr(username));  
            ADOQuery1->Active=true;  
            pwd=Edit2->Text;  
            if   (DBEdit1->EditText==username)  
                if   (DBEdit2->EditText==pwd)  
                      {if   (username!="")  
                              this->Close();  
                        else  
                              {  
                                Edit1->Text="";  
                                Edit2->Text="";  
                                ADOQuery1->Active=false;  
                                ADOQuery1->SQL->Clear();  
                              }  
                        }  
   
  }  
   
  下面进行给粉!Top

14 楼kigy(阿群)回复于 2001-08-21 12:51:54 得分 0

我已经会了:  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
            AnsiString   username,pwd;  
            username=Edit1->Text;  
     
            ADOQuery1->SQL->Clear();  
            ADOQuery1->SQL->Add("select   *   from   administrator");  
            ADOQuery1->SQL->Add("where     administrator="   +   QuotedStr(username));  
            ADOQuery1->Active=true;  
            pwd=Edit2->Text;  
            if   (DBEdit1->EditText==username)  
                if   (DBEdit2->EditText==pwd)  
                      {if   (username!="")  
                              this->Close();  
                        else  
                              {  
                                Edit1->Text="";  
                                Edit2->Text="";  
                                ADOQuery1->Active=false;  
                                ADOQuery1->SQL->Clear();  
                              }  
                        }  
   
  }  
   
  下面进行给粉!Top

相关问题

  • 问一个关于用户验证登录的问题。
  • 用户登录验证问题----请高手帮忙
  • 有关用户登录,验证的问题
  • 一般用什么来验证保存用户登录,cookie,session,Form身份验证,其他......?
  • 如何利用存储过程验证登录用户的合法性
  • 请问如何使用ASP实现用户登录验证的安全性
  • 用户的登录验证后,怎样回到原来的页面?
  • 我采用form验证.用户登录后我怎么判断他的状态?
  • 关于jsp中验证用户是否已经登录的问题
  • 关于java web系统的用户登录,密码验证的问题。。。

关键词

  • 密码
  • 用户
  • 代码
  • active
  • sql
  • adoquery
  • administrator
  • button1click
  • 窗体
  • edit

得分解答快速导航

  • 帖主:kigy
  • LuoGD
  • wangledong
  • sjz9521

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo