??xml version="1.0" encoding="utf-8" standalone="yes"?> 现在|上行的小L序比较多Q有新闻cdP音乐偷Q下载小P那么它们是如何做的呢Q下面我来做个简单介l,希望对各位站长有所帮助? Q一Q原? Q二Q事? ------------------------------------------------------ ------------------------------------- 然后Q我们需要根据需要做一些替换功能,把不必要的数据替换掉Q这个比较简单,用Replace函数卛_? '以下即ؓ面昄部分
1、创建XMLHTTP对象 //需MSXML4.0支持
2、打开与服务端的连接,同时定义指o发送方式,服务|页(URL)和请求权限等。客L通过Open命o打开与服务端的服务网늚q接。与普通HTTP指o传送一P可以?GET"Ҏ?POST"Ҏ指向服务端的服务|页?
3、发送指令?
4、等待ƈ接收服务端返回的处理l果?
5、释放XMLHTTP对象
二、XMLHTTPҎQ?
1、XMLHTTP对象
备注Q客h可以使用XMLHTTP对象发送Q意的HTTPh,接受HTTP应答,q可以对应答的XML文档q行解析?
OpenҎQ初始化一个Msxml2.XMLHTTPhQ指定HTTPh方式、URL以及鉴定信息?
OpenQ?bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword Q?
bstrMethodQ?数据传送方式,即GET或POST?
bstrUrlQ?服务|页的URL?
varAsyncQ?是否同步执行。缺省ؓTrueQ即同步执行Q但只能在DOM中实施同步执行。用中一般将其置为FalseQ即异步执行?
bstrUserQ?用户名,可省略?
bstrPasswordQ用户口令,可省略?
SendҎQ发送HTTPh到服务器Q返回应{?
语法Q?
oXMLHttpRequest.send(varBody)
说明Q此Ҏ是否同步取决于OpenҎ的varAsync参数。如果设为True则ؓ同步Q调用立刻返回,如果设ؓFalse调用直到整个应答被接收了才返回?
setRequestHeaderQ?bstrHeader, bstrvalue Q?
bstrHeaderQHTTP ?header)
bstrvalueQ?HTTP ?header)的?
如果OpenҎ定义为POSTQ可以定义表单方式上传:
xmlhttp.setRequestHeaderQ?"Content-Type", "application/x-www-form-urlencoded"Q?
三、XMLHTTP属性:
onreadystatechangeQ在同步执行方式下获得返回结果的事g句柄。只能在DOM中调用?
responseBodyQ?l果q回为无W号整数数组?
responseStreamQ?l果q回为IStream?
responseText Q?l果q回为字W串?
responseXMLQ?l果q回为XML格式数据?
四、示例:
代码片段
function getDatal(url){
var xmlhttp
= new ActiveXObject("MSXML2.XMLHTTP.4.0";//创徏XMLHTTPRequest对象Q需MSXML4.0?
?nbsp;["MSXML2.XMLHTTP.4.0","MSXML2.DOMDocument.4.0"]
xmlhttp.open("GET",url,false,"",""; //使用HTTP GET初始化HTTPh
xmlhttp.send(""; //发送HTTPhq获取HTTP响应
return xmlhttp.responseXML; //获取XML文档
}
< /script >
偷E序实际上是通过了XML中的XMLHTTPlg调用其它|站上的|页。比如新dL序,很多都是调用了sina?
新闻|页Qƈ且对其中的htmlq行了一些替换,同时对广告也q行了过滤。用偷E序的优ҎQ无ȝ护网站,因ؓ偷E序中的数据来自其他|站Q它随
着该网站的更新而更斎ͼ可以节省服务器资源,一般小L序就几个文gQ所有网内定w是来自其他网站。缺ҎQ不E_Q如果目标网站出错,E序也会出错Q?
而且Q如果目标网站进行升U维护,那么偷E序也要q行相应修改Q速度Q因为是q程调用Q速度和在本地服务器上d数据比v来,肯定要慢一些?
下面XMLHTTP在ASP中的应用做个单说?
代码: 代码片段
’常用函数
’1、输入url目标|页地址Q返回值getHTTPPage是目标网늚html代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP"
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312"
set http=nothing
if err.number<>0 then err.Clear
end function
’2、{换ؕ玛,直接用xmlhttp调用有中文字W的|页得到的将是ؕ玛,可以通过adodb.streamlgq行转换
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream"
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
’下面试着调用http://www.998w.net/class/的html内容
Dim Url,Html
Url="http://www.998w.net/class/"
Html = getHTTPPage(Url)
Response.write Html
%>
代码:
'代码]用XMLHTTPdq程文g 代码片段
Response.Buffer = True
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("Microsoft.XMLHTTP"
xml.Open "GET", "http://www.998w.net/down/998w1.0.rar", False
xml.Send
’ Add a header to give it a file name:
Response.AddHeader "Content-Disposition", _
"attachment;filename=mitchell-pres.zip"
’ Specify the content type to tell the browser what to do:
Response.ContentType = "application/zip"
’ Binarywrite the bytes to the browser
Response.BinaryWrite xml.responseBody
Set xml = Nothing
%>
如何写ASP入库偷E序
入库偷的原理也很简单:是用XMLHTTPq程d|页的内容,然后Ҏ需要,对读到的内容q行加工Q过滤,替换Q分c)Q最后得到自己需要的数据Q加入到数据库中?
首先Q我们先用XMLHTTPdq程|页Q我的另一片文章中有介l)?
其次Q对内容q行qoQ这个是比较关键的步骤,比如_我要从远E网上提取出所有urlq接Q我应该怎么做呢Q?
代码:
‘q里用的是正则式 代码片段
objRegExp.IgnoreCase = True ’大小写忽?nbsp;
objRegExp.Global = True ’全局为真
objRegExp.Pattern = "http://.+?" ’匚w字段
set mm=objRegExp.Execute(str) ’执行查找Qstr入参?nbsp;
For Each Match in mm ’q入循环
Response.write(Match.ValueQ?nbsp;’输出url地址
next
最后,q行数据库操?
-------------------------------
一个例?
代码: 代码片段
On Error Resume Next
Server.ScriptTimeOut=9999999
Function getHTTPPage(Path)
t = GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312"
End function
’
首先Q进行小L序的一些初始化讄Q以上代码的作用分别是忽略掉所有非致命性错误,把小L序的q行时旉讄得很长(q样不会出现q行时的错
误)Q{换原来默认的UTF-8~码转换成GB2312~码Q否则直接用XMLHTTPlg调用有中文字W的|页得到的将是ؕ码?nbsp;
Function GetBody(url)
on error resume next
Set Retrieval = CreateObject("Microsoft.XMLHTTP"
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
’然后调用XMLHTTPlg创徏一个对象ƈq行初始化设|?nbsp;
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream"
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
Function Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
if Newstring<=0 then Newstring=Len(wstr)
End Function
’处理抓取回来的数据需要调用adodb.streamlgq进行初始化讄?> 代码片段
Dim wstr,str,url,start,over,city
’定义一些需要用到的变?nbsp;
city = Request.QueryString("id")
’E序传回的ID变量Q即用户选择的城市)赋给id
url="http://appnews.qq.com/cgi-bin/news_qq_search?city="&city&""
’q里讄需要抓取的面地址Q当然你也可以直接指定某个地址而不使用变量
wstr=getHTTPPage(url)
’获取指定面的全部数?nbsp;
start=Newstring(wstr," <html>")
’q里讄需要处理的数据的头部,q个变量应视不同情况而设|,具体内容可以通过查看需要抓取的面的源代码来确定。因为在q个E序里我们需要抓取整个页?所以设|ؓ面全部抓取。注意,讄的内容必L面内容唯一的,不可以重复?nbsp;
over=Newstring(wstr," </HTML>")
’和start相对应的是需要处理的数据的尾部,同样的,讄的内容必L面中唯一的?nbsp;
body=mid(wstr,start,over-start)
’讄昄面的范?nbsp;
’下面是动用乑֝挪移大法的时候了Q通过replace可以用一些字W替换掉数据中指定的字符?nbsp;
body = replace(body,"skin1","天气预报 - 斯克|络")
body = replace(body,"http://appnews.qq.com/cgi-bin/news_qq_search?city","tianqi.asp?id")
’本程序中已经完成了替换的工作Q如果有其他需要的话可以l进行类似的替换操作?nbsp;
response.write body
%>
]]>
{
if(confirm("定要删除吗Q一旦删除将不能恢复Q?))
return true;
else
return false;
}
<form name="del" method="Post" action="Del.asp" onsubmit="return ConfirmDel();">
==============================================================
我自q的一个?br>function ConfirmReset()
{
if(confirm("定取消操作吗?一旦取消操作将不能恢复Q?))
window.form1.reset();
// return true;
}
<a href="javascript:ConfirmReset();"><img src="button_cance.gif"></a>
32. indexOf() 用法
<字符串对?gt;.indexOf(<另一个字W串对象>[, <起始位置>])Q?br>
该方法从<字符串对?gt;中查?lt;另一个字W串对象>Q如果给?lt;起始位置>忽略之前的位置Q,如果扑ֈ了,p回它的位|,没有扑ֈp?#8220;-1”。所有的“位置”都是从零开始的?br>eg. Str.indexOf(“AP”)>-1 说明str中存?#8221;AP”字符?br>
33. 生成水?br>
<%
if request.form("Modf") <> "" then
Dim rs
Dim sql
Dim BugID
dim today
today=date()
toyear=year(today)
toyear=toyear*10000
tomonth= month(today)
tomonth=tomonth*100
tonow=day(today)
Serialnum = toyear + tomonth + tonow
Serialnum = Serialnum*10000+1
set rs = Server.CreateObject("ADODB.recordset")
sql = "select top 1 * from buglist order by SubmitDate desc"
rs.open sql,conn,1,3
if not rs.eof then
Dim OldSerialnum
OldSerialnum = Rs("BugID")
OldSerialnum = right(OldSerialnum,12)
Serial = right(Serialnum,12)
if OldSerialnum - Serial >= 0 then
Serialnum = OldSerialnum + 1
end if
end if
BugID = "ES"&request("ProductVersion")&Serialnum
34. 响应回R
function getdata(what,whatid)
{
if (event.keyCode==13)
……
<input name="SerialNum<%=i%>" type="text" onKeyDown="getdata(window.form1.SerialNum<%=i%>.value,<%=i%>)">
35. 关闭H口前刷新父面
response.write "<script language = javascript>"
response.write "javascript:opener.location.reload(); "
response.write "javasript:window.close();</script>"
36. JS事g
事g / 描述
onblur 事g 发生在窗口失ȝ点的时候?br>onchange 事g 发生在文本输入区的内容被更改Q然后焦点从文本输入区移C后?br>onclick 事g 发生在对象被单击的时候?br>onerror 事g 发生在错误发生的时候?br>onfocus 事g 发生在窗口得到焦点的时候?br>onload 事g 发生在文档全部下载完毕的时候?br>onmousedown 事g 发生在用h鼠标攑֜对象上按下鼠标键的时候。参?onmouseup 事g?br>onmouseout 事g 发生在鼠标离开对象的时候。参?onmouseover 事g?br>onmouseover 事g 发生在鼠标进入对象范围的时候?br>onmouseup 事g 发生在用h鼠标攑֜对象上鼠标键被按下的情况下,攑ּ鼠标键的时候?br>onreset 事g 发生在表单的“重置”按钮被单击(按下q放开Q的时候?br>onresize 事g 发生在窗口被调整大小的时候?br>onsubmit 事g 发生在表单的“提交”按钮被单击(按下q放开Q的时候?br>onunload 事g 发生在用户退出文档(或者关闭窗口,或者到另一个页面去Q的时候?br>onSelect 当Text或Textarea对象中的文字被加亮后Q引发该事g?
onFocus 当用户单击Text或textarea以及select对象Ӟ产生该事件?
onBlur 当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时Q引发该文g.
onDragDrog 拖放时发?br>onLoseCapture
onDblClick 鼠标双击事g
onKeyPress 当键盘上的某个键被按下ƈ且释放时触发的事?[注意:面内必L被聚焦的对象]
onKeyDown 当键盘上某个按键被按下时触发的事件[注意:面内必L被聚焦的对象]
onKeyUp 当键盘上某个按键被按攑ּ时触发的事g[注意:面内必L被聚焦的对象]
onAbort 囄在下载时被用户中?
onBeforeUnload 当前面的内容将要被改变时触发的事g
onMove 览器的H口被移动时触发的事?br>
37. 自动最大化
function window_onload()
{
window.moveTo(-2,-2);
window.resizeTo(screen.availWidth, screen.availHeight);
}
<body onload="window_onload()">
38. 几个SQL技?br>
Select Area,Territory,username,sum(dealqty) DealQty,count(Projectnum) ProjectQty,sum(TotalAmount) TotalAmountQty,sum(TotalPowerRT) TotalPowerRT FROM VW_PreviewTerritory where username = 'D龙? group by area,Territory,username
只要把不需要统计的东西分组可以了?br>
select area,count(projectnum) TotalProjectQty,sum(DealQty) TotalDealQty,sum(TotalAmount) TotalAmountQty,sum(TotalPowerRT) TotalPowerRTQty from vw_previewProject where username = 'admin' group by area
q个也是一PCQcount() 只是计数Q不这个字D值是多少。sum()是求和,把所有加在一赗?br>
39. Eval用法
eval("ProducingArea"+i+".style.display = 'none' ;");
单引号不影响
eval("if((window.form1.ProductBaseType"+i+".value!='' && window.form1.ProductBaseType"+(i+1)+".value =='')==true);");
//错误Q?br>if(eval("window.form1.ProductBaseType"+i+".value!='' && window.form1.ProductBaseType"+(i+1)+".value ==''")==true)
//以后记得凡是有if判断的,把eval("")写在里面Q就比较好!
if(confirm(eval("'信要在'+window.form1.ProductBaseType"+(i)+".value+'后添加子c?'")))
40. H口关闭之前
function window_onbeforeunload(Projectnum)
{
if (event.clientX > document.body.clientWidth && event.clientY < 0 )
{
var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
oXMLHTTP.open("POST","CheckProjectDeal.asp?Projectnum="+Projectnum,false);
oXMLHTTP.send();
Str=unescape(oXMLHTTP.responseText);
if (unescape(oXMLHTTP.responseText)!="YES")
{
window.event.returnValue="目臛_需要一个销售机会!";
}
}
}
41. 标准表格
***************
* q个是标?br>
***************
<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tr>
<td class=title nowrap align=left>
<%response.write Application("LProductManage"&session("LanguageId"))%>
</td>
</tr>
</table>
***************
* q个是横U?br>
***************
<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tbody>
<tr>
<td>
</td>
</tr>
<tr class="linecolor">
<td height="2"></td>
</tr>
<tr>
<td class="tdcolor" align=left height=15> </td>
</tr>
</tbody>
</table>
***************
* q个是表?br>
***************
<table border=0 cellpadding=0 cellspacing=1 width=100% bgcolor="#d0d090">
<tbody>
<th align="middle" class=light2><b><%=application("Lstatus"&session("languageid"))%></b></th>
<th align="middle" class=light2><b><%=application("LSaleStage"&session("languageid"))%></b></th>
<tr bgColor="white">
<td align="middle"> </td>
<td align="middle"> </td>
</tr>
</tbody>
</table>
Ҏ\填充 = 0
间隔 Q?1
底色 = #d0d090
42. q也?br>
for i=2 to num
BaseTypeAllPArr = request("BaseType"&i&"P"&jLoop)&":"&BaseTypeAllPArr
response.Write " OOOO "&request("BaseType"&i&"P"&jLoop)&" OOOO <br>"
next
43. 标准注释?br>
'' ******************************************************************
'' 文g?
'' Copyright (c) 2001-2005 ××信息技术公司Y仉
'' 功能描述:产品~辑
'' 参数
'' 牉|数据表,视图Q存储过E:自定义函数dbo.GetSubTreeinfo
'' 包含的文?
'' 调用的公用函敎ͼc,Ҏ
'' 创徏?Kokey YU
'' 日 ? 2005-8-9
'' 修改?
'' 日 ?
'' 修改说明:
'' 版 ?
'' ******************************************************************/
44. title换行
<a href="javascript:;" title="q是一行这是另一行!">把鼠标放上来</a>
]]>
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br>其实也可以用<!--#include file="fuck.asp"-->
22. 全部选定
<SCRIPT language=javascript>
function CheckAll(form)
{
for (var i=0;i<form.elements.length;i++)
{
var e = form.elements[i];
if (e.Name != "chkAll")
e.checked = form.chkAll.checked;
}
}
</script>
引用Q?br><td width="250" height="30"><input name="chkAll" type="checkbox" id="chkAll" onclick=CheckAll(this.form) value="checkbox">选中本页昄的所?lt;/td>
格Q?br><input name='username' type='checkbox' id="username" value="<%=cstr(rsView("username"))%>">
23. 如何处理面执行时发生的错误Q?br>
<%@ LANGUAGE="VBScript" %>
<%
Response.Buffer = True ' 打开面~冲
On Error Resume Next ' 打开错误处理
…………' ASP代码
%>
<%
If Err.Number <> 0 Then ' 错误处理
Response.Clear ' 清除~冲?br>%>
<HTML>' 昄错误信息面
<HEAD>
<TITLE>面错误报告</TITLE>
</HEAD>
<BODY BGCOLOR="#C0C0C0">
<font color=red>
<p>面错误报告</p>
错误?<%= Err.Number %><BR>
错误描述:<%= Err.Description %><BR>
错误?Source <%= Err.Source %><BR>
错误发生?<%= Err.Line %><BR>
</BODY>
</HTML>
<%
End If
%>
24. 收藏夹图?
?HEAD 部分加入下面的内?
<LINK REL="SHORTCUT ICON" HREF=http://www.alleasy.com.cn/alleasy.ico>
在地址栏加入图标(图标必须?ico格式Qƈ且要加入收藏后才有效Q?br>在HEAD里加?<link rel="shortcut icon" href="favicon.ico">
25. 校验提交表单Q正则表辑ּ应用Q?br>
<script language="JavaScript">
<!--
function CheckForm()
{
if (LoginID.value =="")
{
alert("请填写您的登录名Q?);
LoginID.focus();
return false;
}
var filter=/^\s*[.A-Za-z0-9_-]{5,15}\s*$/;
if (!filter.test(LoginID.value)) {
alert("用户名填写不正确,请重新填写!可用的字符为(A-Z a-z 0-9 _ - .)长度不小?个字W,不超q?5个字W,注意不要使用I格?);
LoginID.focus();
LoginID.select();
return false;
}
if (Password.value =="")
{
alert("请填写您的密码!");
Password.focus();
return false;
}
var filter=/^\s*[.A-Za-z0-9_-]{5,15}\s*$/;
if (!filter.test(Password.value)) {
alert("密码填写不正?请重新填写!可用的字符为(A-Z a-z 0-9 _ - .)长度不小?个字W,不超
q?5个字W,注意不要使用I格?);
Password.focus();
Password.select();
return false;
}
if (Password.value != ConfirmPassword.value)
{
alert("请两ơ填写的密码不一_请重新填写!");
ConfirmPassword.focus();
return false;
}
if (CompanyName.value =="")
{
alert("请填写贵公司名称Q?);
CompanyName.focus();
return false;
}
var filter=/^[a-zA-Z][a-zA-Z0-9._-]*@([a-zA-Z0-9-_]+\.)+(com|gov|net|com\.cn|edu\.cn)$/;
if(!filter.test(document.myform.Email.value)){
alert("邮箱格式不正?");
document.myform.Email.focus();
return false;
}
myform.submit();
return true;
}
//-->
</SCRIPT>
l一一下,以后都这样写
<form method="POST" name="myform" action="Checkreg.asp" >
</form>
<input type="button" name="Submit" value="提交" onClick="CheckForm();">
26. 循环
<%
dim sql,rs
set rs=server.createobject("ADODB.recordset")
sql="select * from news where bigclassname='解决Ҏ'"
rs.open sql,conn,1,3
for k=1 to rs.recordcount
if rs.eof then
exit for
else
%>
<tr>
<td>
asfasdf
</td>
</tr>
<%
rs.movenext
end if
next
%>
27. 另一个只能输入数字代?br>
<script language=java script>
function check(){
if(isNaN(tt.value))
{
alert("必须是数?");
tt.value="";
}
</script>
<input type="text" name="tt" onkeyup="check();">
28. 有选择昄
function showco(va)
{
if (va=="CO")
{
RefNum.style.display=''; //不再用这个可以直接用 block
buttonsp.style.display='none';
}
if (va=="SP")
{
buttonco.style.display='none';
buttonsp.style.display='';
kokey.style.display='';
}
if (va=="Inventory")
{
RefNum.style.display='none'; //不显C?br> Reftr.style.display="block"; //昄
}
调用Q?br>
<select name="RefType" style='width:77pt' onChange="showco(this.value)">
<option value="Inventory">Inventory</option>
<option value="CO" >CO</option>
<option value="SP">SP</option>
</select>
选择昄?<tr id="Reftr" name="Reftr" style="display:none">也可以用<div id=”Resftr” ></div>
29. 调试参数昄规范
Response.Write session("LoginCompanyId")&","&Date&","&Request.Form("Owner")&","&Request.Form("Name")&
//注意最后没?只是在,之间?," 其他?amp;&引用卛_
//也就是说只是?nbsp; &","& 中间加一个逗号Q其他的该怎么写,怎么?br>Response.End
30. 从数据库填充下拉菜单
<%
sql = "select * from BigClass"
rs.open sql,conn,1,1
%>
<select name="BigClassName" size="1">
<option selected value="<%=trim(rs("BigClassName"))%>"><%=trim(rs("BigClassName"))%></option>
<%
rs.movenext //不能,否则重复
do while not rs.eof
%>
<option value="<%=trim(rs("BigClassName"))%>"><%=trim(rs("BigClassName"))%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
//以下是新Ҏ
<select name="SrcNo">
<%do while not SrcRs.eof%>
<option value="<%=trim(SrcRs("Cost"))%>"
<%
if Trim(SrcComRs("SrcNo")) = Trim(SrcRs("Cost")) then
response.Write "selected"
end if
%>
><%=trim(SrcRs("Cost"))%>
</option>
<%
SrcRs.movenext
loop
SrcRs.close
%>
</select>
]]>
response.write"javascript:history.go(-1)</SCRIPT>"
end if
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br>q个是蟩转?br><script language="javascript">
alert('<%=intOperationInfo%>');
window.navigate('ChangePwd.asp');
</Script>
12. 从VBS到JSQ?br> <%
dim checkpwdconfig
checkpwdconfig=split(addation,"/")
%>
<script language="javascript">
alert("<%=checkpwdconfig(0)%>")
</script>
13. 弹出H口
<script language=javascript>
function openaddnew()
{
subWindow=window.open("../Edit/PasswordConfigEdit.asp?method=new",'','scrollbars=yes,left=120,top=60,height=250,width=500,menubar=no,location=no,toolbar=no,resizable=yes','')
subWindow.opener = this;
}
</script>
用一个连接调用:
<a href=""Q?">请修改密?onClick="openaddnew()"</a>
囄调用Q?br><img name=submit1 src="../button_new<%=session("languageid")%>.gif" onClick="openaddnew()">
14. 分页
<!--#include file="conn.asp"-->
<%
if request("pageno")<>"" then
pageno=int(request("pageno"))
else
pageno=1
end if
sql="select * from news where [language]='中文' and bigclassname='新闻' order by id desc"
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,3
rs.pagesize=20
if rs.eof then
pageno=0
else
rs.absolutepage=pageno
end if
%>
==========================================
?lt;%=rs.recordcount%>?<%=pageno%>/<%=int(rs.pagecount)%>?每页<%=rs.pagesize%>?br> <a href="manage.asp?pageno=1">首页</a>
<%if pageno>1 then%>
<a href="manage.asp?pageno=<%=int(pageno)-1%>">上一?lt;/a>
<%
end if
if int(pageno)<>int(rs.pagecount)then
%>
<a href="manage.asp?pageno=<%=int(pageno+1)%>">下一?lt;/a>
<%end if%>
<a href="manage.asp?pageno=<%=int(rs.pagecount)%>">N</a>
<%rs.close%>
<%
call CloseConn()
%>
15. 数据库更?br> sql="select * from [user] where username='"&request("username")&"'"
rs.Open sql,Conn,1,3
rs("usermail")=Request("usermail")
rs("userhome")=Request("userhome"))
rs.update
rs.close
16. 关闭独立H口
<head>
<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff- 11cf-9377-00aa003b7a11"><param name="Command" value="Close">
</object>
</head>
<body>
<input type="button" value="点击我关闭窗? onclick="closes.Click();">
</body>
17. 极细表格
<table border="1" cellpadding="0" cellspacing="0" width="32" height="32" bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr>
<td> </td>
</tr>
</table>
18. 几个正则表达?br>Require : /.+/,
Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
Zip : /^[1-9]\d{5}$/,
QQ : /^[1-9]\d{4,8}$/,
Integer : /^[-\+]?\d+$/,
Double : /^[-\+]?\d+(\.\d+)?$/,
English : /^[A-Za-z]+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
UnSafe :/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
19. Left应用Q控制字敎ͼ
function title(str)
if len(trim(str))>=28 then
title=left(trim(str),27)&"..."
else
title=trim(str)
end if
end function
20. 判断览?br><SCRIPT LANGUAGE="javascript1.2">
<!--//
if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;
if (language.indexOf('en') > -1) document.location.href = 'en/index.asp';
else if (language.indexOf('zh') > -1) document.location.href = 'cn/index.asp';
else
document.location.href = 'cn/index.asp';
// End -->
</script>
]]>
Round(pi, 2) 四舍五入
FormatNumber(k,4) ' ?k 格式化ؓ带四位小数点的数?
eg. 如果k =20000则显CZؓ20,000.00Q如果把formatnumber(k,0)则ؓ20,000
Replace(expression,find,replacewith) 'q回一字符Ԍ其中指定的子串已被另一个子串替?
Left(String,Length) 'q回指定数目的从字符串的左边v的字W串?
Split(expression[, delimiter[, count[, start]]]) 'q回Z 0 的一l数l,其中包含指定数目的子字符丌Ӏ?
eg. 常用q个 Split(String,[delimiter]) ' 用delimiter(用于标识子字W串界限的字W?来划分字W串
Instr(String1,String2) 'q回某字W串在另一字符串中W一ơ出现的位置
eg1. if instr(addation,"密码配置?)<>0 then '说明存在
eg2. if instr(str,”AP”) >0 不好区分str = (AP,AP&AC),此时只要变ؓQ?#8217;AP’,’AP&AC’Q?再用instr(str,”’AP’”)
2. 弹出H口Pick?
function pickupSP(spdisid,pjnum,pdcode)
{
window.opener.<%=theForm%>.RefNum<%=Spid%>.value=spdisid;
window.opener.<%=theForm%>.LineS<%=Spid%>.value=pjnum;
window.opener.<%=theForm%>.kokey<%=Spid%>.value=pdcode;
window.close();
}
3. ASP控制囄昄的大({比例羃放)
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="JavaScript">
<!--
var flag=false;
function DrawImage(ImgD){
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0){
flag=true;
if(image.width/image.height>= 164/112){
if(image.width>164){
ImgD.width=164;
ImgD.height=(image.height*164)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"x"+image.height;
}
else{
if(image.height>112){
ImgD.height=112;
ImgD.width=(image.width*112)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"x"+image.height;
}
}
}
//-->
</script>
</HEAD>
<BODY>
<a href="./img.jpg" target="_blank"><img src="./img.jpg" border="0" width="164" height="112" onload="javascript:DrawImage(this);"></a>
</BODY>
</HTML>
4. ASP中对数据库表的操?Insert/Update/Delete),可用事务处?q支持多事务处理.
在ASP的数据库对象链接对象?提供了一下属?
BeginTrans 事务开?
CommitTrans 事务提交
RollbackTrans 事务回滚
<%
On Error Resume Next ’错误发生后l处?
'Asp中用事?
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "course_dsn","course_user","course_password"
conn.begintrans '开始事?
sql="delete from user_info"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,3
if conn.errors.count>0 then '有错误发?
conn.rollbacktrans '回滚
set rs=nothing
conn.close
set conn=nothing
response.write "交易p|Q回滚至修改前的状态!"
response.end
else
conn.committrans '提交事务
set rs=nothing
conn.close
set conn=nothing
response.write "交易成功Q?
response.end
end if
%>
在ASP?不提供事务的l束,BeginTrans只作用于自己的域,cM于变量声明一?如果在函C内BeginTrans,则事物只作用于本函数?如果BeginTrans在函C?处于面U?则事务的作用域从BeginTrans开?到页面的l束均处于事务的理状态下.
5. EasySales数据库操?
dim objCon,objRst,objsql
dim companyid
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open SYSDNS,SYSNAME,SYSPASSWORD
Set objRst = Server.CreateObject("ADODB.RecordSet")
objsql="select * from PasswordConfig where companyid='"&session("CompanyID")&"'"
objRst.Open objsql,objCon,1,3
6. html格式邮g发?
HTML = "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<title>Sending CDONTS Email Using HTML</title>"
HTML = HTML & "<link href="../cn/new.css" rel="stylesheet" type="text/css">"
HTML = HTML & "</head>"
HTML = HTML & "<body bgcolor=""FFFFFF"">"
HTML = HTML & "<p><font size=7>"
HTML = HTML & "This is a test mail in html<br>"
HTML = HTML & "Mail content here ...</font></p>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
dim StrRecEmail,StrPosEmail,StrSubject,StrBody
StrRecEmail=request("email")
StrPosEmail="yufh@alleasy.com.cn"
StrSubject="资料下蝲通知?
StrBody=HTML
7. input是下划线
style="BORDER-RIGHT: #f7f7f7 0px solid; BORDER-TOP: #f7f7f7 0px solid; FONT-SIZE: 9pt; BORDER-LEFT: #f7f7f7 0px solid; WIDTH: 110px; BORDER-BOTTOM: #c0c0c0 1px solid; HEIGHT: 16px; BACKGROUND-COLOR: #f7f7f7"
8. Session & Cookie
写入一个SESSIONQ
Session["username"])="aa";
Session("username")="aa"
d一个SESSINNQ?
string username= Session["username"];
dim username=Session("username")
Cookie与此用法大致相同
9. 几个VB中的常数
下列常数?Visual Basic for Applications 中的cd库定义,可用来在代码中的M地方代替实际|
常数 {于 描述
vbCrLf Chr(13) + Chr(10) 回RW与换行W结?
vbCr Chr(13) 回RW?
vbLf Chr(10) 换行W?
vbNewLine Chr(13) + Chr(10) q_指定的新行字W;适用于当前^?
vbNullChar Chr(0) gؓ 0 的字W?
vbNullString gؓ 0 的字W串 用来调用外部q程Q与长度为零的字W串 ("") 不同
vbObjectError -2147221504 用户定义的错误号应当大于该|例如Q?
Err.Raise Number = vbObjectError + 1000
vbTab Chr(9) Tab 字?
vbBack Chr(8) 退格字W?
10. 按钮Z可用
<%if rsView.eof and rsView.bof then %> ‘ q里有个大问题,下文再说
<input name="submit" type='submit' value='寚w定用户解鎖' disabled>
<%else%>
<input name="submit" type='submit' value='寚w定用户解鎖' >
</td>
<%end if%>