快捷搜索:   服务器  PHP  安全  linux 安全  IIS

经典ASP代码集锦(3)


MoveNext 支持 支持 支持 支持
MovePrevious 不支持 支持 支持 支持
NextRecordset 支持 支持 支持 支持
Open 支持 支持 支持 支持
Requery 支持 支持 支持 支持
Resync 不支持 不支持 支持 支持
Supports 支持 支持 支持 支持
Update 支持 支持 支持 支持
UpdateBatch 支持 支持 支持 支持
--------------------------------------------------------------
其中NextRecordset方法并不适用于Microsoft Access数据库。

LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:

-------------------------------------------------------------
常数 常数值 说明
--------------------------------------------------------------
adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、
删、改的操作。

1、关闭窗口在图片的连接上写
  javascript:window.close();
  提交的图片连接写
javascript:document.Form1.submit();
  删除之前出现确认对话框:
  <a href="del.asp?id=<%=rs("rowid")%>" ONCLICK="javascript:return confirm('真的要删除数据吗?')">删除</a>

  2、用JScript弹出提示框然后跳转到指定页面
  <%
  Response.Write "<script language='javascript'>alert(""提交成功!"");location.href=""AddBook.asp"";</script>"
  %>

  3、页面摘入等待。。。。脚本说明:
  把如下代码加入<head>区域中
  <SCRIPT LANGUAGE="JavaScript">
  document.write("<font size=6 color=blue face='楷体_GB2312'><B>正在载入首页,请稍等..</B></font>");
  window.clear;
  window.location.href="http://www.seo100.net";
  </SCRIPT>

  4、在Text直接修改记录,然后点修改保存记录
  <%count=0
  do while not (rs.eof or rs.bof) and count<rs.PageSize %>
  <form action="webGroupEdit.asp" method="post" name="GroupEdit" onSubmit="return Checkedit()">
  <tr bgcolor="E9F3FF">
  <td> <%=rs("id")%> <input name="b" type="hidden" id="b" value="<%=rs("id")%>">

<input name="currpage" type="hidden" id="currpage" value="<%=page%>"></td>
  <td height="18"><input name="a" type="text" id="a" value="<%=rs("MemGroupName")%>" size="20" maxlength="50">
  </td>
  <td height="18"><input name="c" type="text" id="c" value="<%=rs("Remark")%>" size="25" maxlength="30"></td>
  <td><input type="submit" name="Submit" value=" 修改 " ></td>
  <td><div align="center"><a href="webGroupDel.asp?id=<%=rs("id")%>&page=<%=page%>" onClick="return check()">删除</a></div></td>
  </tr>
  </form>
  <%
  count=count+1
  rs.movenext
  loop
  %>

  5、自动计算问题:
  <input type="hidden" name="selvalue">
  <Select NAME="select1" onChage="javascript:document.form1.selvalue.value=this.options[this.options.selectedIndex].text">
  <option value="1">新浪</option>
  <option value="2">百度</option>
  <option value="3">中华网</option>
  <option value="4">腾讯</option>
  </Select>




ASP初学者常犯的几个错误(轉貼)
1.记录集关闭之前再次打开:
------------------------------------
sql="select * from test"
rs.open sql,conn,1,1
if not rs.eof then
dim myName
myName=rs("name")
end if
sql="select * from myBook"
rs.open sql,conn,1,1
-------------------------------------
解决:在第二次rs.open之前先关闭 rs.close

set rs1=server.createobject
rs1.open sql,conn,1,1

2,用SQL关键字做表名或字段名
-------------------------------------
sql="select * from user"
rs.open sql,conn,1,1
-------------------------------------
user为sql关键字
解决:改为
sql="select * from [user]"


3,用锁定方式去进行update
-------------------------------------
sql="select * from [user]"
rs.open sql,conn,1,1
rs.addnew

rs("userName")="aa"
rs.update
-------------------------------------
当前记录集的打开方式为只读
解决:
改为
rs.open sql,conn,1,3

4,在查询语句中采用的对比字段值与字段类型不符
-----------------------------------------
sql="select * from [user] where id= " & myID & " "
rs.open sql,conn,1,1
-----------------------------------------
假设表中设计ID为数字型,那么些时出错。
解决:
sql="select * from [user] where id=" & myID

5,未检查变量值而出错
-----------------------------------------
sql="select * from [user] where id=" & myID
rs.open sql,conn,1,1
-----------------------------------------
假设myID变量此时值为null,那么sql将成为
sql="select * from [user] where id="
解决:
在前面加上
if isnull(myID) then 出错提示

6,未检查变量值类型而出错
-----------------------------------------
sql="select * from [user] where id=" & myID
rs.open sql,conn,1,1
-----------------------------------------
假设id为数字型,myID变量此时值不为null,但为字符,比如myID此时为"aa"
那么sql将成为
sql="select * from [user] where id=aa"
解决:
在前面加上
if isnumeric(myID)=false then 出错提示

这也可以有效防止 sql injection 漏洞攻击。

7,由于数据库文件所在目录的NTFS权限而引起的 不能更新。数据库或对象为只读"错误。
说明:
WIN2K系统延续了WINNT系统的NTFS权限。
对于系统中的文夹都有默认的安全设置。
而通过HTTP对WWW访问时的系统默认用户是 iusr_计算机名 用户 ,它属于guest组。
当通过HTTP访问时,可以ASP或JSP,也或是PHP或.NET程序对数据进行修改操作:
比如:
当打开某一个文章时,程序设定,文章的阅读次数=原阅读次数+1
执行
conn.execute("update arts set clicks=clicks+1 where id=n")
语句时,如果 iusr_计算机名 用户没有对数据库的写权限时,就会出错.
解决方法:
找到数据库所在目录
右键》属性》安全选项卡》设置 iusr_计算机名 用户的写权限(当然,也可以是everyone)





其实就是得到地址栏里"?"以后的字串
<SCRIPT language=javascript>
var srcc = window.location;
srcc = srcc.toString()
start = srcc.indexOf("?");
end = srcc.length;
</SCRIPT>



用正则表达式限制文本类型;

只能输汉字:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

 

顶(3)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论