您所在的位置:小祥子 » 代码研究 » 正文

第六期:新云软件报错文件分析

时间:2015-02-02 编辑:本站 来源:本站原创

今天分析下一个软件报错的文件。

程序:新云CMS4.0

文件路径:common/error.ASP

功能:

在新云的软件下载里有一个报错的按钮,给浏览者点击,如果软件打不开用户可以点击这个按钮然后管理员可以在后台看到这个错误信息。

带上HTML代码一共也才70多行,十分简单。

第1、2行为调用数据库的相关文件,不再做注释了,下面放出小祥子注释后的代码

<!--#include file="../conn.asp"-->
<!--#include file="const.asp"-->
<%
Dim code, ccc
Dim Rs, SQL, softid
If Not IsNumeric(Request("softid")) And Request("softid") <> "" Then '简单判断SOFTID是否为数字
 Response.Write "错误的系统参数!ID必须是数字"
 Response.End
Else
 softid = CLng(Request("softid")) '如果是正确是数字那么就赋值给变量softid
End If
If Not IsObject(Conn) Then ConnectionDatabase '如果当前没有连接数据库就那么进行连接
If Request("code") <> "" And Request("code") = Request.Cookies("downError") Then '简单的cookie验证
 Set Rs = NewAsp.CreateAXObject("ADODB.RecordSet") '以下是对数据库进行操作
 SQL = "SELECT ErrCode FROM NC_SoftList WHERE softid=" & softid
 Rs.Open SQL, Conn, 1, 3
 If Not Rs.EOF Then
  If Rs("ErrCode") <> "" Then '如果已经有人报错过了,那么就+1次报错次数(PS,如果网站比较大,数据比较多,那可以在后台做一个排序,优先处理报错多的)
   Rs("ErrCode").Value = Rs("ErrCode").Value + 1
  Else
   Rs("ErrCode") = 1 '没有则为之取值1
  End If
  Rs.Update
 End If
 Rs.Close
 Set Rs = Nothing
 Conn.Close
 Set Conn = Nothing
 Response.Cookies("downError") = Request("softid") '设置COOKIE
End If
If Request.Cookies("downError") <> Request("softid") Then
 code = Now() * 2 / 2
 Response.Cookies("downError") = code
Else
 ccc = 1
End If

%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>错误报告</title>
<style>
td{font-size:9pt;line-height:140%}
body{font-size:9pt;line-height:140%}
a:link          { color: #0033CC; text-decoration: none }
a:visited       { color: #0033CC; text-decoration: none }
a:active        { color: #FF0000; text-decoration: none }
a:hover         { color: #000000; text-decoration: underline}
</style>
</head>
<body topmargin="8">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" height="100%">
  <tr>
    <td width="100%" align="center">
  <%If Request("code")=Request.Cookies("downError") or ccc=1 Then%>
  <script LANGUAGE="JavaScript">
<!--
setTimeout('window.close();', 5000);
// -->
  </script>
   <font color="#FF0000">谢谢你的提醒!<br>我们会尽快修复此软件,请你过段时间再来下载!<BR>给你带来不便,敬请原谅!</font>
  <%Else%>
    <form action="error.asp?softid=<%=softid%>&code=<%=code%>" method="post" name="form">
      <input type="submit" value="报告错误" name="B1"></p>
    </form>
<%End If%>    </td>
  </tr>
</table>
</body>
</html>
<%
NewAsp.PageEnd()
%>

关键词:新云 软件 报错