65.9K
CodeProject 正在变化。 阅读更多。
Home

一个简单的 ASP 2 反馈表单

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.07/5 (15投票s)

2004年1月22日

3分钟阅读

viewsIcon

101642

downloadIcon

2443

一个简单的 ASP 反馈表单,带有一些额外的功能,如客户端的 IP、浏览器信息等。

How it looks!

屏幕截图

引言

这是我提交的另一个反馈表单的第二个版本。 我重新提交是因为旧版本的错误和更新过程需要花费大量时间,并且还应该注意的是,我现在变得谦虚了(请参阅文章的标题!)。

这是我对 CodeProject 的第二次贡献,所以如果你认为这段代码低于你的水平,请不要生我的气! 我在学校假期期间一直在研究它(2004 年 1 月 12 日花了 32 分钟来构建和调试它)。 这是一个简单的反馈表单,允许您网站的用户直接将反馈发送到您的电子邮件 ID。 为了防止您的收件箱被垃圾邮件淹没,它已被配置为每个用户每周只能向您提供一次反馈(cookies)! 它甚至会邮寄他们的 PC 信息(IP、浏览器信息)、发布时间以及您收到反馈的次数! 该表单禁用页面上的右键单击,没有任何提示,您还可以将 CodeProject 添加为书签并将其设置为您的主页! 所有这些都在源文件中!

背景

如果您对 cookies 和 CDONTS 有基本的了解,那么本教程就像馅饼一样简单! 即使您对 cookies 和 CDONTS 一无所知,您也可以下载包含源文件的配套 ZIP 文件,在 Notepad 等文本编辑器中将电子邮件地址更改为您自己的地址,并将其上传到支持 ASP 和 CDONTS 的 Web 服务器中,以观看奇迹!

代码

这是用于检查用户是否已在上周给您反馈的代码

strfeed = Request.Cookies("Feed")("Yes")
IF (Len(strfeed) > 0) then
    Response.Write "<font color=red><b>You have already" _
             " given us feedback! You can give it again only " _
             "after a week!</b></font>"
    Response.Redirect "Index.asp"
End IF

这是用于请求表单内容的代码

strnam = Trim(Request.Form("name"))
stremail = Trim(request.form("mail")) 
strcom = Trim(request.form("com")) 
strcom = Trim(request.form("sug"))

在上面的代码中,表单元素是

  1. name - 用户姓名 (文本框)
  2. mail - 用户的电子邮件 ID (文本框)
  3. com - 用户的评论 (文本区域)
  4. sug - 用户的建议 (文本区域)

这是用于检查表单字段是否已填写,如果已填写则提交表单的代码

if (strnam <> "" and stremail <> "" and strcom <> "" _
           and strsug <> "")then
    dim newmail, strfeed, ipadd, brow, now, msgbody, date, _
                 strnam, stremail, strcom, strsug
    num = application(num)
    ipadd = Request.ServerVariables("REMOTE_ADDR")
    brow = Request.ServerVariables("HTTP_USER_AGENT")
    date = time

    msgbody = "Suggestions: " & strsug & "Comments: " & strcom & _
              vbcrlf & "PC info:" & "IP:" & ipadd & "Browser: " & brow & _
              "Time:" & date & "Hits:" & num &"times!")
    Set Newmail = server.CreateObject ("cdonts.newmail")
    Newmail.From = stremail
    Newmail.To = "someone@somewhere.com"
    Newmail.Subject = "Feedback From:" & strnam
    Newmail.Body = msgbody
    Newmail.Send
    Set Newmail = Nothing

分析: 此代码将检索表单字段,并通过 IP 地址、浏览器信息和签名时间将其邮寄到电子邮件地址 'someone@somewhere.com'! 在此代码生效之前,您需要添加以下代码声明,以便能够计算点击次数

Dim Num
Num = Request.Servervariables("SCRIPT_NAME")  
Application.Lock
IF isEmpty(Application(Num)) Then 
    Application(Num)=0 
END IF
Application(Num) = Application(Num)+1 
Application.Unlock

这是用于设置一周后过期的 cookie 的代码

Response.Cookies("Feed")("Yes") = "yes"
Response.Cookies("Feed").Expires = DateAdd("d",7,Now()) 
Response.Redirect "index.asp"

分析: 在这里,我们将值 yes 设置为 cookie 'Feed',当第一个代码段检查时,如果该值大于 0,即 (Len(strfeed)>0),则会将页面重定向到 'index.asp'。 设置 cookies 后,页面将自动重定向到 'index.asp'。

作为奖励,我包括了在没有提示的情况下禁用 ASP 页面上的右键单击的代码! 将此代码添加到您的 body 部分! 这是代码

<script language="JavaScript">
   <!--
   var message="";
   function clickIE() {if (document.all) {(message);return false;}}
   function clickNS(e){
     if (document.layers||(document.getElementById&&!document.all)) {
       if (e.which==2||e.which==3) {(message);return false;}}}
     if (document.layers){
       document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;
     }
     else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
     document.oncontextmenu=new Function("return false")
</script>

转到此处获取永久样本!

注意:在 Notepad 等文本编辑器中将电子邮件 (someone@somewhere.com) 地址更改为您希望接收反馈的地址,并将其上传到支持 ASP 和 CDONTS 的 Web 服务器中,以观看奇迹!

如果您喜欢它,请评分! 欢迎评论和建议!

© . All rights reserved.