仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3944|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网页编程之处置Asp中的毛病

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:39:23 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧毛病   You just finished your ASP application in time, barely making the dealine! As you upload the final version to the webserver, you receive an email from your supervisor indicating that he's ready for your demo. You confidently stride into his office and give him instructions on accesses the application through the Intranet.

Your boss comes to the first page, and is asked to enter his name. You've created a slick, customized feel to the site, recording the user and his or her preferences in a database. Your boss types in his name, "The Pointy Haired Boss," and hits the submit button. Instead of being taken to the next page, he sees the following text pop up on the screen:

Microsoft OLE DB Provider for ODBC Drivers error ' 80004005' [Microsoft][ODBC Access 97 ODBC driver Driver] syntax wrong near '

Please note that I just made this error message up, so, please, no emails asking about how one gets this error by entering his name!

You get one of those looks from your boss, a look that says, "I hope you weren't expecting a positive performance review."

There's nothing worse to an end user than to see those dreaded ADO errors. They are misformatted, cryptic, and leave the user wondering what they are suppose to do. Your average end user doesn't know ODBC from OLE. So how can you prevent these nasty error messages?

First you must insert at the top of your ASP page:


<% On Error Resume Next %>
This will tell ASP to just skip over any errors, instead of halting execution and printing out a nasty error message. You may be tempted to leave it at this, although if you do, and errors occur, your users won't be aware of them. They will think their information was correctly saved, when in actuality it wasn't due to an ADO error.

What, then, do we want to do if there is an error? Well, the idea situation would be to let the end user know that an error had occurred and will be worked on, and automatically email technical support with the ADO error messages. So that is what we will do!

The question now is how to we "trap" errors? Well, after any ADO call that accesses the database, we will want to put the following lines:



If Err.number <> 0 then
  TrapError Err.description
End If

You will want to put this after all ADO calls that communicate directly with the database. This includes ConnectionObject.Open, ConnectionObject.Execute, and RecordsetObject.Open. Now, you may be wondering where the sub TrapError is defined: we're about to do that. Create a file called ErrorHandler.asp and put it in your /include or /scripts directory. In ErrorHandler.asp, we will have the following subs:


TrapError
ProcessErrors
Let's look at the code for ErrorHandler.asp:



<%
Dim strErrorMessage
Dim bolErrors

'Initialize variables
strErrorMessage = ""    'The error messages for tech. support
bolErrors = False    'Have we found any errors yet?

'Now our two subs
sub TrapError(strError)
  bolErrors = True    'Egad, we've found an error!

  strErrorMessage = strErrorMessage & strError & ", "
end sub



'If there are any errors, this function will email tech. support
sub ProcessErrors()
  if bolErrors then
    'Send the email
    Dim objCDO
    Set objCDO = Server.CreateObject("CDONTS.NewMail")

    objCDO.To = "techsupport@mysite.com"
    objCDO.From = "techsupport@mysite.com"
    objCDO.Subject = "AN ADO ERROR OCCURRED"
    objCDO.Body = "At " & Now & " the following errors occurred on " & _
          "the page " & Request.ServerVariables("SCRIPT_NAME") & _
          ": " & _
                  chr(10) & chr(10) & strErrorMessage

    objCDO.Send

    Set objCDO = Nothing

    'Now, we've got to print out something for the user
    Response.Write "There has been a database error.  Technical Support " & _
&nbsp</p>  国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了
莫相离 该用户已被删除
沙发
 楼主| 发表于 2015-2-15 22:07:58 | 显示全部楼层
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-8 06:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表