山那边是海 发表于 2015-2-3 23:31:50

ASP网站制作之ASP情况下邮件列表功效的完成 (三)

缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。   在会见办理页面之前必需经由身份验证。本完成中咱们用图3所示的secure.htm页面供办理员输出身份辨认码,若用户输出值非空则用Cookies来保留它。履行办理义务的页面是admin.asp,每当用户试图会见这个页面,上面的代码将反省这个Cookies与用户身份辨认码(这里是123456)是不是婚配,如婚配掉败则将该用户重定向到输出身份辨认码的secure.htm页面。

 < %
  strPW1 = Request.Form("txtPW")
  if strPW1 < > "" then
Response.Cookies("PassWord") = strPW1
  end if 'strPW1 < > ""
  strPW2 = Request.Cookies("PassWord")
  If strPW2 < > "123456" Then
Response.Redirect("secure.htm")
  End if 'strPW2 < > "123456"
 %>

   一旦办理员的身份验证经由过程,他们可以经由过程Admin.asp履行的操作包含:

检查Guests表中的一切纪录
编纂或
删除指定的纪录
向一切邮件列表中的用户发送邮件
   办理页面admin.asp如图4所示。显示Guests表的纪录时先从数据库提取这些纪录,然后利用一个For Each ... Next布局遍历纪录集的字段纠合,提取字段名字并设置表格的表头。在这个页面中咱们不再显示Guest_ID字段,但每一个用户纪录的后面都加上了一个“删除”和“编纂”功效的链接。用户名字字段Guest_Name与邮件字段Guest_Email被转换为mailto链接,单击名字可以独自向该用户发送邮件。其它要格局化的字段还包含是不是发送邮件(Mail_List)和用户留言(Guest_Comment)。生成表头的代码为:



 ' 从数据库拔取纪录
 strSQL_Select = "SELECT Guests.Guest_ID, Guests.Guest_Email, " & _
 " Guests.Guest_Name, Guests.Mail_List, " & _
  " Guests.Guest_Comment, Guests.Sign_Date " & _
  " FROM Guests ORDER BY Guests.Guest_Name; "
 Set oConn=Server.CreateObject("ADODB.Connection")
 oConn.Open strDSNPath
 Set rsGbook = oConn.Execute(strSQL_Select)
 if rsGbook.BOF = True and rsGbook.EOF = True then
  ...数据库空提醒,略...
  else
  rsGbook.MoveFirst
  %>
  < table BORDER="0" cellpadding="5" cellspacing="2" align="center">
  < tr>
  < % for each Head in rsGbook.Fields
  if Head.Name = "Guest_ID" then %>
  ..."删除"与"编纂"表头,略...
  < % else %>
  < td VALIGN="middle" align="center">< font face=Arial size=2>
  < % select case Head.Name
  case "Guest_Name"
  Response.Write "名 字"
  case "Mail_List"
  Response.Write "邮件列表"
  case "Guest_Comment"
  Response.Write "留 言"
  end select
  %>
  < /font>< HR>< /td>
  < % end if 'Head.Name = "Guest_ID"
  next %>
  < /tr>

   为在表格的其他地位显示用户注册纪录,咱们用两个嵌套的轮回遍历一切纪录的一切字段,即在一个Do While ...轮回外面嵌入一个For Each ... Next 轮回。数据的格局化任务放在For Each ... Next轮回内。其完成代码类如:

 < % Do While Not rsGbook.EOF %>
  < tr>
 < % For Each Field in rsGbook.Fields
  if Field.Name = "Guest_ID" then %>
  < td VALIGN="middle" ALIGN="center">
  ...删除功效的链接,略...
  < /td>
  < td VALIGN="middle" ALIGN="center">
  ...编纂功效的链接,略...
  < /td>
 < % else %>
  < td VALIGN="middle" align="center">
 < % if isNull(Field) then
  Response.Write " "
  else
  if Field.Name = "Guest_Name" then
  Response.Write ...用户名字的mailto链接,略...
  elseif Field.Name = "Mail_List" then
  ...输入"是"或"否",略...
  elseif Field.Name = "Guest_Comment" then
  ...输入用户留言,略...
  end if 'Field.Name
  end if 'isNull(Field)%>
  < /td>
 < % end if 'Field.Name = "Guest_ID"
  Next
  rsGbook.MoveNext %>
  < /tr>
 < % loop %>
 < /table>

   如今咱们已把数据库纪录显示在表格中了。单击表格中的图形链接可以会见edit_record.asp和delete_record.asp,这两个文件分离供应纪录的编纂和删除功效。起首咱们来看看删除功效的完成:

 < %
 iGuestID = Request.Querystring("ID")
 if iGuestID < > "" then
  '从数据库删除由ID标识的纪录
  strSQL_Delete = "DELETE FROM Guests " & _
  " WHERE Guest_ID=" & iGuestID
  Set oConn = Server.CreateObject("ADODB.Connection")
  oConn.Open strDSNPath
  on error resume next
  oConn.Execute strSQL_Delete
  oConn.Close
  Set oConn = Nothing
  if err.number < > 0 then
  Response.Redirect("admin.asp?Error_Del=True")
  else
  Response.Redirect("admin.asp?Error_Del=False")
  end if
 else
  Response.Redirect("admin.asp")
 end if 'iGuestID < > ""
 %>

   上述代码与unsubscribe.asp中的代码十分类似,实践上二者完成的义务也很相似。这里的ID是必需的,它标识了请求删除的纪录。实践的删除义务经由过程DELETE SQL号令完成。

   更新纪录页面edit_record.asp所用的代码略微庞杂一点,其界面如图5所示。这里要用到两个SQL语句:第一个SQL SELECT语句从数据库拔取需求编纂的纪录;第二个SQL UPDATE语句将办理员编纂了局保留到数据库。这里咱们不再详细剖析完成进程,请拜见本文所附代码及其正文。
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。

金色的骷髅 发表于 2015-2-4 01:09:18

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

深爱那片海 发表于 2015-2-6 13:03:29

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

第二个灵魂 发表于 2015-2-7 16:25:54

下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...

冷月葬花魂 发表于 2015-2-8 17:46:44

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

愤怒的大鸟 发表于 2015-2-9 21:18:55

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

山那边是海 发表于 2015-3-2 20:18:47

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

海妖 发表于 2015-3-7 03:35:53

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

谁可相欹 发表于 2015-3-9 21:41:27

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

活着的死人 发表于 2015-3-11 01:03:23

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

小魔女 发表于 2015-3-15 22:22:12

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

蒙在股里 发表于 2015-3-19 19:17:39

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

柔情似水 发表于 2015-3-21 05:19:59

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

再见西城 发表于 2015-3-31 19:03:50

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

精灵巫婆 发表于 2015-4-12 18:29:03

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

透明 发表于 2015-4-13 13:07:09

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

小女巫 发表于 2015-4-13 16:54:53

那么,ASP.Net有哪些改进呢?

只想知道 发表于 2015-4-17 21:48:33

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

飘飘悠悠 发表于 2015-5-2 11:12:42

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

简单生活 发表于 2015-5-4 03:47:32

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
页: [1]
查看完整版本: ASP网站制作之ASP情况下邮件列表功效的完成 (三)