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: <
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"><系统信息设置 ></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] ... 下一页 >>