飘灵儿 发表于 2015-2-3 23:39:23

ASP编程:我的防止数据反复提交的办法,不敢独享...

Active Server Page技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。数据|反复|反复提交     ASP中的数据提交是一个十分主要并且经常使用的环节,若何防止数据反复提交是个罕见的成绩,普通数据反复提交有2种体例:1、刷新提交后的页面,会提醒从头发送信息,选择重试就会反复提交;2、按back前往再提交;所以良多人都问若何制止back按钮的成绩,这个最少今朝是没法真正做到的。

  我的思绪是:提交数据的时分做数据正当校验,校验经由过程后翻开一个“埋没”的窗口(实际上是显示在屏幕以外的一个小窗口)来停止提交处置,数据保留胜利后刷新父窗口并用alert显示保留形态然后封闭此隐含窗口,如许用户就没法用back前往并且提交后的窗口已封闭,防止反复刷新。

  上面是我的演示,只要2个文件:submitdemo.asp 和 save.asp,十分复杂,只需略微修正就能够使用到你的法式里,但愿对人人有匡助。

1.submitdemo.asp 演示数据输出和校验主法式
------------------------------------------

<html>
<head>
<title>new/edit</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="JavaScript">
<!--
//翻开一个地位在屏幕以外的窗口
function NewHideWindow(mypage,myname)
{
    LeftPosition = parseInt(screen.width)+1;
    TopPosition = parseInt(screen.height)+1;
    settings ='height=100,width=100,top='+TopPosition+',left='+LeftPosition+',scrollbars=0,resizable=0,status=0'
    window.open(mypage,myname,settings)
}
//数据校验函数
function validate(theForm)
{
    if(theForm.text1.value == "")
      {
      alert("请填写text1的数据!");
      theForm.text1.focus();
      return (false);
      }
    if(theForm.text2.value == "")
      {
      alert("请填写text2的数据!");
      theForm.text2.focus();
      return (false);
      }
    return (true);
}
//挪用下面两个函数校验输出的数据并翻开保留数据窗口
function savewin(theForm)
{
   if(validate(theForm))
   {
      NewHideWindow('about:blank','SaveWindow');
      return true;
   }
   return false;
}
-->
</script>
</head>

<body bgcolor="#FFFFFF">
<!--注重这里的 onsubmit 的函数挪用和 target 中的窗口名字要和 savewin 函数中NewHideWindow写的窗口名分歧(注重巨细写)-->
<form name="form1" action="save.asp"onsubmit="return savewin(this);" target="SaveWindow">
text1:
<input type="text" name="text1"><br>
text2:
<input type="text" name="text2">
<input type="submit" name="Submit" value="提 交">
</form>
</body>
</html>


2.save.asp 保留数据处置
------------------------

<%
Dim intStatus
'**********************************************************
'*保留数据到数据库,在此最好再停止一次数据的正当校验    *
'*...                                                   *
'*If 保留胜利 Then                                    *
'*   intStatus = 1                                    *
'*Else                                                *
'*   intStatus = -1                                    </p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。

若天明 发表于 2015-2-4 04:52:34

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

深爱那片海 发表于 2015-2-5 00:05:28

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

兰色精灵 发表于 2015-2-10 23:07:35

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

再现理想 发表于 2015-3-1 17:09:14

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

愤怒的大鸟 发表于 2015-3-2 03:33:42

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

admin 发表于 2015-3-4 11:56:29

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

谁可相欹 发表于 2015-3-11 19:24:08

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

柔情似水 发表于 2015-3-19 09:15:53

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

不帅 发表于 2015-3-22 02:52:17

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

乐观 发表于 2015-4-1 08:40:43

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

小女巫 发表于 2015-4-4 11:52:21

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

因胸联盟 发表于 2015-4-14 22:37:13

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

灵魂腐蚀 发表于 2015-4-16 12:11:55

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

小妖女 发表于 2015-5-6 06:11:41

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

飘飘悠悠 发表于 2015-5-12 10:28:31

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

透明 发表于 2015-6-8 16:06:53

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

莫相离 发表于 2015-6-24 11:44:14

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

简单生活 发表于 2015-7-8 04:26:16

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
页: [1]
查看完整版本: ASP编程:我的防止数据反复提交的办法,不敢独享...