IIS-ASP(二) 使用数据库设计登陆界面

来源:互联网 发布:数据库王珊萨第五版pdf 编辑:程序博客网 时间:2024/05/11 14:25

使用数据库构建登陆界面

ASP最大的好处在于可交互性,在配好ASP-IIS环境之后,今天做一个简单根据账号密码进行登陆的页面。在这个过程中可以学习到的知识有:

  • 基础ASP语法
  • 使用ASP操作数据库的方法
  • 配置ODBC数据源
  • 简单的HTML页面优化
  • 简单的安全性配置

登陆的逻辑很简单,用户输入账号,密码,发送到后台。后台从数据库中查询账号密码是否匹配。若匹配,就进行登陆成功的逻辑处理。
所以看起来,我们至少需要两个.asp应用程序:welcome.asp,用于用户输入账号,密码;login.asp,用于处理登陆逻辑。

登陆页面

<html><head><meta charset=utf8></head><body><form action="login.asp" method="post">用户名<input type="text" name="uid" size="20"/>密码<input type="text" name="pwd" size="20"/><input type="submit" value="提交"/></form></body></html>

上面是welcome.asp的代码,按照上篇文章的方法,把它保存到IIS的默认目录下,打开浏览器,输入127.0.0.1/welcome.asp 不出意外的话会看到下面的页面
welcome.asp
还很丑,后面再优化。
前面讲过ASP程序可以看作是脚本语言嵌入在HTML语言中的。所以代码也是从声明HTML头部开始,这里首先声明使用UTF8字符集。然后在HTML的体部中声明了一个form标签 。从名字上看,form指的是表单,在HTML中表单用于向服务器传递消息。表单可以包含input 类型的元素:包括文本框,提交按钮,单选框,复选框等。在上面的代码中用到的就是文本框和提交按钮。当我们点击提交按钮时,就会使用post方法把用户名和密码提交到服务器,同时在服务器开启login.asp处理提交上来的数据。就是这么简单。
下面来写login.asp
因为需要使用数据库来存储用户注册的账户和密码,所以需要先安装DBMS(数据库管理软件),这里使用SQL SEVER 2017 , 当然使用其他DBMS也是可以的,例如Access, SQL lite 等。
在Web服务器连接数据库的方法很多, 按抽象层次由高到低可以分为CGI,Web API ,ADO 技术等。 ADO是ASP内置的用于访问Web数据库的Active X服务器组件。ADO可以使用ODBC 或者OLE DB 与数据库相连。
当使用ODBC 方法相连时,只能连接到关系型数据库。当我们想连接到某个数据库时,只需要给出这个ODBC的名字即可。ODBC数据源管理器在Win10中是默认安装的。只需要将其关联到具体的物理数据库上即可。
例如,我的电脑上已经建立好了ODBC数据源
ODBC数据源
这时只需要在login.asp中连接到这个ODBC上即可。
login.asp代码如下

<html><head><meta charset=UTF8></head><body><%      set conn=Server.CreateObject("ADODB.Connection")    set rs=Server.CreateObject("ADODB.Recordset")    conn.Open  "ASP"     dim UID    dim PWD    UID=Request.Form("UID")    PWD=Request.Form("PWD")    if conn.state=1 then        rs.open "select * from UID_PWD where UID='"&UID&"' ",conn        if(rs("PWD")=PWD) then            Response.write("密码正确")        else            Response.write("密码错误")          end if    else        Response.write("Connect to ODBC failed")    end if    conn.close%></body></html>

在HTML的body中先创建了一个ADO组件的Connection对象和Recordset对象。这里我们使用了set,没有使用conn=…,是因为在ASP语言中 = 用于对变量的初始化而 set 用于给变量改变值。在ASP初始化时 conn和rs已经被初始化了,所以这里使用set。

conn.Open "ASP" 

通过Open语句通过ODBC 连接到数据库, ”ASP“是我提前配置好的ODBC。连接成功conn.state值将变为 1。通过rs.Open可以执行SQL语句,返回的结果将是一个表。rs指向这个表的第一行。一般来说用户名应该是独一无二的,所以我们只需要判断数据库中纪录的密码和用户提交的密码是否一样就可以了。

理论上说,如果数据库中已经存在了用户名的纪录,这个程序就是可用的了。我们只需要把login.asp 加入到服务器的默认目录下就可以了。

这时我们打开welcome.asp,输入提前存储好的用户名,密码,点击提交,就可以收到返回的密码正确了。
密码正确

这里有几个需要注意的点:

  • 在IIS-7.0 中ASP脚本错误报告默认是不显示在浏览器上的,为了调试方便,我们最好把它打开,只需要在功能视图里双击ASP,然后在”调试属性“一栏把“将错误发送到浏览器” 打开即可。
  • 如果不特别指定的话,ASP登陆数据库使用的用户名是NT AUTHORITY/IUSER, 如果在SQL SEVER 中没有这个用户,或者这个用户没有访问login数据库的权限,就会报错。可以在配置文件中更改登陆用户名,最简单的办法直接在SQL SEVER 里添加这个用户,并赋予相应的权限即可。
  • SQL SEVER报错可能使用的是ANSI编码,如果出现乱码只需要相应的调整编码即可。
  • login.asp并没有处理用户名不存在这种情况的逻辑,作为练习,可以自己加上。

下一篇将进行界面的美化,并加一些安全方面的代码。

阅读全文
1 0
原创粉丝点击