网站首页站长博客下载中心域名交易站长论坛域名主机免费电邮免费域名中文排行排名查询站长书库书籍教程下载
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
学院首页 网络编程 网页设计 图形图象 数 据 库 服 务 器 网络媒体 网络安全 个人专栏 站长CLUB 业界新闻 信息公告
 当前位置:首页 >> 网络编程 >> NET专区 >> 正文
公告通知
返回上级列表
资料搜索
相关文章
从ASP迁移至ASP+ --处理会话变量(Session Variables)
[ 来源: | 作者: | 时间:2004-6-22 12:24:00 | 浏览:人次 ]
收藏到新浪ViVi 收藏到365KEY 收藏到我摘  字号选择〖    〗/ 双击滚屏 单击停止  
处理会话变量(Session Variables)
作 者 : 雨晨


   现存的ASP版的eVille禁止对站点的某些部分的访问,除非用户已经登录。一些功能像查看将来的优惠特价,报名上课,以及了解自己当前的入学状况是受限制区域。如果想在未登录的状态下访问这类区域,你只会被重新导回到登录页面。用户在一份表格中输入他们的用户名与密码,然后与数据库的学生表进行比较,如果登录成功,一个名为blnLoggedIn的会话变量便被设为真。这种方法对这个站点是有效的,因为它架设在一台单一的服务器上。其它的方法将被用于web farms上的web应用程序,比如ASP+的会话存储,或SQL的会话存储。

   ===确认用户输入===

   代码重写工作量最大的部分在于那些获取用户输入的页面,用户输入这些信息以登记成为eVille会员。有一个叫signup.asp的页面,用来让用户输入他们的重要信息,现有会员也可籍此更新信息。未转换前,表格的数据通过HTTP Post方式递交给一个叫cookie.asp的页面。该页会确认表格中的数据,如果存在错误,将用户导回signup.asp同时在query string中加上错误号。接着一个Select Case语句会将基于错误号的输出进行转换。我们检查的错误包括:

   *未输入用户名

   *未输入密码

   *密码与密码确认不符

   *用户名在数据库中已存在

   通过将所有的输入域(field)转换成服务器控件,然后添加RequiredFieldValidators,可以轻松处理头两个可能发生的错误。RequiredFieldValidator只须简单确认经ControlToValidate域鉴别后的服务器控件中有输入值:

   < tr>

   < td valign="top">

   < asp:RequiredFieldValidator runat=server

   ControlToValidate = "txtUserName"

   Display = "static"

   errorMessage="< b>*< /b>"

   ForeColor = "#CC3300" />

   < /td>

   < td valign=top>User Name:< /td>

   < td valign=top>

   < asp:TextBox id="txtUserName" size=25 runat=server />< /td>

   < /tr>

   这种方案是如此简单以至我们决定在把RequiredFieldValidator添加到所有的表格输入域中。在ASP中,我们通常会用一个VBScript函数来检验输入值,而现在我们只需把RequiredFieldValidator添加到每个我们想确认的控件中去。

   至于密码与密码确认的比较,我们可以使用ASP+的CompareValidator。该控件允许我们设置ControlToValidate,ControlToCompare以及Operator属性(在本例中是一个等于号,即'Equal')。被指定的两个控件用Operator(即操作符)属性互相比较。与传统的If...Then语句相比,这种方法明显要简单,快捷:

   < asp:CompareValidator runat=server

   ControlToValidate = "txtConfirm"

   ControlToCompare = "txtPassword"

   Type = "String"

   Operator = "Equal"

   Display = "dynamic"

   errorMessage="< b>*< /b>"

   ForeColor = "#CC3300" />

   基于不同的浏览器,ASP+ validator控件会相应执行客户端的JavaScript验证(针对IE4.0以上版本),或者执行服务器端验证(针对其它情况)。不论验证是如何执行的,服务器端的验证是必不可少的(以阻止某些淘气的家伙在客户端验证上耍花样)。

   现在轮到最后一个错误了。假如提交的用户名已经存在,这就要求一点点页面的改动。到目前为止,我们已经用可以执行服务器端与客户端验证代码的服务器控件完成了所有的ASP+验证。至于最后这个错误,我们要提供一些自定义的服务器端验证,因为我们需要访问数据库以了解被请求的用户名是否已存在。我们可以利用ASP+ CustomValidator控件来解决这一问题。


[发送给好友]  [打印本页]  [关闭窗口]  [返回顶部]   转载请注明来源:http://edu.chinaz.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
栏目编辑: 设计风 责任编辑: chinaz.com
原始作者: 录入时间: 2004-6-22 12:24:00
信息来源: 投稿信箱: Edu#chinaz.com
设为首页 - 加入收藏 - 关于我们 - 广告服务 - 版权申明 - 友情链接 - 联系方式 - 总编信箱 - 会员投稿