打印本文 打印本文  关闭窗口 关闭窗口
ASP与SQL网站数据库程序设计(16)
作者:.. 文章来源:科学出版社 点击数: 更新时间:2004/1/25 1:09:56
    </Td></Tr>

37:    </Table>

38:    </Td>

39:    </Tr>

40: </Table>

41: </Form>

42: </BODY>

43: </HTML>

44: <% End Function%>

45:

46: <%

47: Function CheckPasswd

48: Set OBJConn = Server.CreateObject("ADODB.Connection")

49: OBJConn.Open "Trade", "test", "test1"

50: SQL = "Select 帐号,密码 From 系统信息"

51: Set Rs = OBJConn.Execute(SQL)

52:

53: If Trim(Request.Form("Account")) = Rs.Fields("帐号") And _

54: Trim(Request.Form("Passwd")) = Rs.Fields("密码") Then

55:      Response.Redirect ("/SystemAdmin.asp")

56:    Else

57:       Response.Redirect ("/Login.asp")

58: End If

59: End Function

60: %>

这个程序同样未指定 HTML <Form>标记的 Action属性。事实上,这种做法有优点,同样的也有其缺点。

优点:一个程序即自成一个功能完整的子系统。从程序的管理员角度来说,程序数量不会无限制地膨胀,如有流程修改,仅仅修改一个程序的内容即可。

缺点:程序的内容趋于复杂化,实际维护不易。

接着继续说明这个程序的运行方式:

程序说明

13~44行:标准 HTML 文件的窗体模式。

53~58行:将用户输入的帐号及密码与“系统信息”表内的记录相比较。由于本段程序是从第6行直接调用的,因为在此之前并没有对浏览器输出任何的HTML标记,因而可以直接使用“Response.Redirect”方法将网页转向。

55行:如果输入的帐号及密码与表的记录相符,则直接将网页转向“/SystemAdmin.asp”。

57行:如果输入的帐号及密码与表的记录不符,则直接将网页转向“/Login.asp”。

这是一个非常典型的密码检查方式。这种检查方法有其优点也有其缺点:

优点:程序代码非常少,程序逻辑非常简单。

缺点:

·        只要表记录外泄,所有信息都将不保。

·        Internet上容易被窃取帐号与密码(因为使用明码传输)。

至于是否有其他更安全的传输方式呢?答案是肯定的,这些方式如下所示。至于做法则不在本书范围内,在此不多加讨论:

·       采用 SSL 加密协议。

·       采用 Java Applet

·       采用 ActiveX OCX

15-3  系统信息设置

在整个范例系统的操作模式上,都是根据这个子系统所管理的数据而运行的,这个子系统将用到“系统信息”表。以下这个子系统的执行结果、程序内容以及程序说明如下所示。

SystemInfo.asp 程序段

01: <%

02: Response.Expires = 0

03: Set OBJConn = Server.CreateObject("ADODB.Connection")

04: OBJConn.Open "Trade", "test", "test1"

05: %>

06: <HTML>

07: <HEAD>

08:

09: <%

10: if request.form("Submit") = "修改确认" then

11:      WriteDatas

12: else

13:      SQL = "Select * from 系统信息"

14:     On Error Resume Next

15:      Set Rs = OBJConn.Execute(SQL)

16:      MailOut = rs.fields("邮件转发")

17:      CompanyName = Rs.fields("公司名称")

18:      CompanyAddress = rs.fields("公司地址")

19:      FullViewMethod = rs.Fields("全图预览方式")

20:      MailServer = rs.fields("邮件服务器")

21:      AdminEmail = rs.fields("管理员信箱")

22:      Telephone = rs.fields("电话")

23:      Fax = rs.fields("传真")

24:      SystemLogo=rs.Fields("商标文件名")

25:      ShowDetails

26: end if

27: %>

程序说明

这段程序代码主要的作用在于执行情况的判断、表记录的取得等。在取得表记录的同时,会将特定字段的数值存放到指定的变量中。

SystemInfo.asp 程序段

29: <% Function ShowDetails %>

30: <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

31: <TITLE>系统信息管理</TITLE>

32: <style TYPE="text/css">

33: <!--

34: .tsize {font-size:10pt;color:white;letter-spacing:1pt;}

35: .ChiDingtitle { font-size: 16pt; color: #44FF00}

36: .banner {font-size:9pt;color:blue;letter-spacing:1pt;}

37: .banner1 {font-size:9pt;color:blueviolet;letter-spacing:1pt;}

38: a { text-decoration:none; }

39: -->

40: </style>

41: </HEAD>

42: <BODY>

43: <center class="ChiDingTitle">&lt;系统信息设置 &gt;</center>

44: <form method="post">

45: <table Border=1 border=0 cellpadding=1 cellspacing=1 align=center>

46: <tr align="left" bgcolor="CornflowerBlue">

47:      <td class="tsize" width="80">公司名称</td>

48:      <td class="tsize" width="300"><input type= "text" name="CompanyName" Value="<% = CompanyName %>" Size="50" Maxlength="50"></td>

49: </tr>

50: <tr align="left" bgcolor="CornflowerBlue">

51:      <td class="tsize" width="60">公司地址</td>

52:      <td class="tsize" width="300"><input type= "text" name="CompanyAddress" Value="<% = CompanyAddress %>" Size="50" Maxlength="50"></td>

53: </tr>

54: <tr align="left" bgcolor="CornflowerBlue">

55:      <td class="tsize" width="60">电  话</td>

56:      <td class="tsize" width="300"><input type= "text" name="Telephone" Value="<% = Telephone %>" Size="20" Maxlength="20"></td>

57: </tr>

58: <tr align="left" bgcolor="CornflowerBlue">

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 



打印本文 打印本文  关闭窗口 关闭窗口