首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

4.2.4  登录页面的生成

登录页面一般由用户账号和密码构成。很显然这是一个提交表单,现在在大多数论坛登录中都加入了验证码,而验证码大都是由现成的图片构成的,因此可以把它单独做成一个页面以嵌入的形式加入到登录页面中。对于账号、密码及验证码都要求不能为空,所以要加入判断语句,与数据库中的用户信息进行比较。而一旦登录成功,则可直接进入下一个页面或链接进入下一个页面。

登录页面所在的文件名为log.asp,其预览效果如图4-16所示。

图4-16

登录页面显示在主页的左下角,是以内部框架的形式加入到主页中的,如:

<iframe scrolling="no"src="log.asp"  name="i_log" frameborder="0"

width="98%" align="middle" height="98%" ></iframe>

log.asp页面主要由表单构成,其代码组成如下。

1.<table cellpadding="2" cellspacing="4"  align="center">

2.<form action="" method="post" name="reg">

3. <tr><td background="images/images/index_r7_c11.jpg"> 用户名:<input type="text"        4.name="user" class="jt1" size=16 /></td></tr>

5. <tr><td background="images/images/index_r7_c11.jpg">密&nbsp;&nbsp;码:<input      6.type="password" class="jt1" size=16 name="password" /></td>  </tr>

7. <tr><td background="images/images/index_r7_c11.jpg">验证码:<input type="text"

8.class="jt1" size=16 name="ma" /></td></tr>

9.<tr><td  align=center><input type="submit" class="jt1" value="登录" />

10  &nbsp;&nbsp;&nbsp;&nbsp;<input type="button" class="jt1" value=

    "注册"></td></tr>

11.</form>

12.</table>

 代码释义:

一般来说,表单都要写在表格中,这样表单的位置就很容易控制,而且有时可以在表格中嵌套表格。第1~12行就是一个大的表格。

第2~11行是一个表单,第2行是表单的标记,包括表单的action、method及name。action是表单提交处理程序的链接,也就是单击【提交】按钮后,表单指向哪个网页。method是表单处理数据的方法,共分为post和get两种。用post传递的数据量要大一些,而且在获取数据时是以form形式接收的,如request.form("")形式。如果以get形式传递,则一般来说传递的数据量要有所限制,一般在1KB以下,而且以该形式传递数据时,在获取数据时是以querystring形式接收的,如request.querystring("")。当然对于以问号形式传递的数据在接收时,也要用querystring形式接收,如qsdd.asp?id=<%=rs(" xm ")%>。在获得id时,就要用到querystring,如:

<%

Dim id

id=request.querystring("id")

%>

但需要注意的是,如果链接的内容以问号的形式传递了变量,则会在地址栏内显示出相关信息,因此安全性会有所降低。对于重要的数据,可以通过建立隐藏域来进行传递。关于这方面的内容,后边将会介绍。

第3~4行为用户名输入域设置。<input type="text" name="user" class="jt1" size=16 />是表单输入域,type表示类型,它可包括text、 password 、submit、 reset 、checkbox 、image、radio 和hidden等8种类型,分别是文本、密码、提交、重置、复选框、图像域、单选按钮及隐藏域。对于每个输入域的命名是很有用的,大家在命名时一定要有规律,否则一旦网页较多,而且需要在表单之间传递数据时,如果对命名所包含的意思不太了解,在具体应用时会很费事。

在第10行,“&nbsp;”代表的是空格,两个代表一个汉字。为了使文字对齐工整,我们可以用空格来代替文字,如密码之间的两个空格就是如此。class="jt1"这是定义在CSS中的样式,定义好了之后,在具体标记中进行调用。样式定义的结果如图4-17所示。

图4-17

在定义文本框大小时,由于类型不同而使两个文本框大小不一致,可以使用style来设置,示例如下。

<tr><td>用户名:<input type="text" name="username" style="width:3cm" /></td></tr>

<tr><td>密&nbsp;&nbsp;码:<input type="password" name="password" style=

    "width:3cm" /></td></tr>。

以上是登录表单的制作,但只有表单是不能完成登录的,必须对所填写的内容进行提交,而且要加进一些判断,因此完整的登录表单代码还应包括一些其他的内容,其代码构成如下。

1.<body>

2.<%

3.dim user

4.user=request.cookies("log")("user")

5.if user="" then

6.%>

7.<table cellpadding="2" cellspacing="4"  align="center">

8.<form action="lognext.asp" method="post" name="reg"

9.onsubmit="javascript:if(document.reg.user.value==''){alert('用户名不能为空!');

            return false}

10.if(document.reg.password.value==''){alert('密码不能为空!');return false}

11.if(document.reg.yan.value==''){alert('请填写验证码!');return false}">

12.<tr><td background="images/images/index_r7_c11.jpg"> 用户名:<input type="text"        13.name="user" class="jt1" size=16 /></td></tr>

14.<tr><td background="images/images/index_r7_c11.jpg">密&nbsp;&nbsp;码:<input           15.type="password" class="jt1" size=16 name="password" /></td>

16.</tr>

17.<tr><td background="images/images/index_r7_c11.jpg">验证码:<input type="text"

18.class="jt1" size=7 name="yan" /><!--#include file="yanma.asp"-->

        <input type="hidden"

19.name="c_yan" value="<%=lyp%>" /></td></tr>

20.<tr><td  align=center><input type="submit" class="jt1" value="登录"  />

21.&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" class="jt1" value="注册

22."onclick="javascript:window.open('register.asp')"></td></tr>

23.</form>

24.</table>

25.<%

26.else

27.response.write  "<font color='#003300' face='华文行楷' size='3'>欢迎

28.【</font><font color=red><b>"&user&"</b></font><font color='#003300' face=

        '华文行楷' size='3'>】进入青春在线!</font>"

29.end if

30.%>

31.</body>

 代码释义:

登录页面要实现的功能是,当用户是注册用户时,如果输入的用户账号与密码都是正确的,则显示登录成功;如果用户已经登录,则在一定时间内,用户再次进入网页时,可直接进入到相关的网页,而不必再次登录。要实现这种功能,必须要用到在注册页面上设置的cookies内容。

第4行,“user=request.cookies("log")("user")”语句用于取得cookies中的值。

第5行,使用一个判断语句,如果获取的cookies值为空,则有两层含义,其一你是注册用户,但还没有登录,是第一次打开网页;其二你根本就没注册过,至于结果,只有在提交表单时才能反应出来。

第7~24行,既然获得的cookies值是空的,无论什么情况,都显示登录表单,即显示用户名、密码及验证码的输入表单信息。

第9~11行,对用户提交表单的判断,即要求文本内容不得为空,即减小数据库的负荷。这是用JavaScript脚本语言写的。关于【提交】按钮的分析,前面已经介绍,这里不再赘述。

第22行,当用户单击【注册】按钮时,网页跳转到注册页面。

第18行,插入一个包含页,这个页用来书写验证码信息。这里需要说明的是,所谓包含页面就是把包含页的代码加到这一页中。之所以采用包含的形式,是使代码管理更方便,修改更容易些,同时在这一行,还加入了一个隐藏域。隐藏域传递了一个值,它是为了与所输入的验证码进行比较的。这一点希望大家能够掌握,这是数据传递常用的一种方法。

第26~30行,当cookies不为空时,则显示登录信息。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论