|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|