易截截图软件、单文件、免安装、纯绿色、仅160KB

asp Cint溢出

VBS里,超出Integer类型的取值范围,该类型的取值范围为-32,768 到 32,767 之间的整数。
出错的根源:
在ASP里,有时候为了仿止注入,所以在接收参数的时候直接使用Cint函数把接过来的参数转换为Integer(数字)类型,这就存在一个潜在问题,当页面接收的某个参数(Request("xxx"))超过取值范围时(可简单理解为5位数字),就会发生此错误。这个是只有初级程序员会范的错误。
VBS里,超出Integer类型的取值范围,该类型的取值范围为-32,768 到 32,767 之间的整数。
  cint范围   -32,768   到   32,767。  (5位整数)
  clng范围   -2,147,483,648   到   2,147,483,647。
  CCur范围   -922,337,203,685,477.5808 到 922,337,203,685,477.5807(15位数)
解决办法:
有两个方案:
一,快速解决方案,打开出错的页面,把所有的Cint函数换为CCur函数(用个字符替换软件,把Cint换为CCur)。转换后,取值范围将从-32,768 到 32,767 (5位整数)提升到-922,337,203,685,477.5808 到 922,337,203,685,477.5807(15位数),但此法也有潜在问题,如果接收数值超过15位,那也会溢出,不过如果只是处理ID字段(如果数据库里有,而且出错的是这个),那么可以放心,数据要达到15位数还是需要很长时间的。
二,完美解决方案,不要再使用Cint、CCur、Clng一类的转换函数,而应该使用IsNumeric 函数来进行判断,此法需要有一定的编程能力时行函数修改。


相关文档:

asp链接sql数据库 代码

 dim conn,connstr
Set conn = Server.CreateObject("ADODB.Connection")'创建一个数据库链接对象conn,方便后面调用
connstr="Provider=SQLOLEDB;Data Source=(local);Initial Catalog=111;User ID=sa;Password=1234;" '创建一个数据库的recordset对象,方便以后调用
conn.Open connstr'打开数据库 ......

ASP中的记录集

eof是asp中recordset对象指针的一种。
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs记录集是我们经常会碰到的,下面对它诸多的移动指针进行汇总,如下:
rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行 ......

asp数组cookies操作函数


本文的创造性在于cookies_to_array(c)   直接简单快捷转化字符串为数组的方法
另外 本文操作的数组 不是 asp普通的多维数组 而是锯齿型的
这种数组 更易操作 更易阅读 行列清晰 很像数据库中的表
可以类比为 datatable
class myarray
'必须为锯齿数组array(array(1,2,3))
function array_to_cookies(a)
......

asp跨域共用cookie和session的问题

      
这几天因为网站涉及到二极域名共用session的问题,头痛。在网上找了好久的料,终于在csdn里面找到2004年前辈们讨论的解决方案,个人感觉很
受用。
楼主
yufeiyxl(与
飞)
我要向各位请教的是Cookie的跨域访问问题。   
       ......

asp会员注册后自动登陆

<%
set rs=server.createobject("adodb.recordset")
sql="select * from YONGHU where (ID is null)"
rs.open sql,conn,1,3
rs.addnew
rs("USERNAME")=request("username")
rs.update
rs.close
set rs=nothing
conn.close 
set conn=nothing
session("username")=rs("name")
    respo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号