快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

从ASP迁移至ASP+--处理会话变量

     作 者 : 雨晨
  
  
     现存的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控件来解决这一问题。
  


返回类别: 教程
上一教程: 如何善用Response.Buffer增进浏览速度?
下一教程: .NET之ASP WebApplication迅速入门(3)

您可以阅读与"从ASP迁移至ASP+--处理会话变量"相关的教程:
· 从ASP迁移至ASP+ --处理会话变量
· ASP系列讲座(十九)治理会话
· 从ASP迁移至ASP+--最初的考虑(一)
· 从ASP迁移至ASP+ --转变其他的页面
· 从ASP迁移至ASP+--从用户那儿收集数据
    微笑服务 优质保证 索取样品