用delphi设计 软件用户登陆验证 网络 SQL数据库 验证登陆姓名和密码

delphi设计 软件登陆验证 网络 SQL数据库 验证登陆姓名和密码!最好有DELPHI源代码!
最新回答
离人乱他心

2024-10-17 13:35:20

1、创建管理员表

CREATE TABLE  Ad

(密码 CHAR(8) PRIMARY KEY,

姓名 varchar(20)

);

2.管理员表初始化

insert into Ad (密码,姓名)

 VALUES('admin', 'admin');

3.创建学生表   

   CREATE TABLE Student

(学生学号 CHAR (10) PRIMARY KEY,

学生姓名 VARCHAR (20) UNIQUE, 

学生性别 CHAR (2),

学生年龄 SMALLINT,

班级号 CHAR (4),

FOREIGN KEY (班级号) REFERENCES Class(班级号)

);

4. 创建教师表

  CREATE TABLE Teacher

  (教工号 CHAR (8) PRIMARY KEY,

教师姓名 VARCHAR (20) UNIQUE,

教师性别 CHAR (2),

职称 VARCHAR (10),

);

登陆源码:

if radiobutton1.Checked then

 begin

  adoquery1.close;

  adoquery1.SQL.clear;

  adoquery1.SQL.add('select * from Student');

  adoquery1.SQL.add('where 学生学号='''+edit2.text+''' and 学生姓名='''+edit1.text+'''');

   adoquery1.Open;

  if adoquery1.RecordCount>0 then

  begin

    form1.hide;

    form2.show;

    end

else

   showmessage('用户名不存在或者权限错误,请查证后输入');

    edit2.Clear

  end

 else if radiobutton2.Checked then

begin

  adoquery1.Close;

  adoquery1.SQL.clear;

  adoquery1.SQL.add('select * from Teacher');

  adoquery1.SQL.add('where 教工号='''+edit2.text+''' and 教师姓名='''+edit1.text+'''');

   adoquery1.Open;

if adoquery1.RecordCount>0 then

  begin

    form1.hide;

    form3.show;

  end

else

   showmessage('用户名不存在或者权限错误,请查证后输入');

    edit2.Clear;

 end

else if radiobutton3.Checked then

 begin

  adoquery1.close;

  adoquery1.SQL.clear;

  adoquery1.SQL.add('select * from Ad');

  adoquery1.SQL.add('where 密码='''+edit2.text+''' and 姓名='''+edit1.text+'''');

   adoquery1.Open;

  if adoquery1.RecordCount>0 then

  begin

    form1.hide;

    form4.show;

    end

else

   showmessage('用户名不存在或者权限错误,请查证后输入');

    edit2.Clear;

    end

梨花雨凉

2024-10-17 08:29:23

刚刚第一个人回答的貌似是客户端直接连接到数据库,然后查询表里的用户名和密码,那就有问题了:
1、本地必须保存SQL用户名和密码,既然知道用户名密码就没必要再多此一举去验证表里的用户名和密码了;
2、本地加密数据库密码,这也是不安全的,即使用加密,你也需要用到解密后才能去连接数据库吧,内存里一查明文就出来了。

这种方法在ASP/PHP中还是有用的,本地就不要用这种方法了。

安全的做法是:
1、客户端通过TCP发送用户名和密码发给服务端;
2、服务端接收到数据后连接数据库验证,验证通过后返回客户端结果
嗝是迷路的屁

2024-10-17 13:37:16

登录按钮中
声明变量
var
vPassword :string;
按钮中代码
With vQuery Do
Begin
DatabaseName := '你的数据库名';
close;
SQL.Text := ' Select * From Operator Where Id='''+edit1.Text+'''';
Open;
If Eof Then //如果用户名错误
begin
ShowMessage('非法用户');
edit1.SetFocus;
Exit;
end;//end if

vPassword := FieldByName('Password').AsString;
If Trim(vPassword) <> Trim(edit2.Text) Then //如果用户口令错误
begin
ShowMessage('用户口令错误!');
Free;
edit2.SelectAll;
edit2.SetFocus;
Exit;
end; //end if
end;