|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。服务器|办理|上传 假如你有两个空间,一个年夜而慢,别的一个小而快,大概个中一个不撑持FSO,那末跨服务器上传文件这个成绩就摆在你眼前了,上面就是我在办理ylog.net内里的跨服务器上传文件的日志,这个成绩看似复杂,内里的细节成绩倒是十分风趣
条件前提,空间都必需撑持ASP,上传文件的服务器撑持FSO,上面的叙说中,diygame.com为存上传文件的服务器,ylog.net为网站服务器,即显现用户界面的服务器...
完成功效,文件上传,上传后在网页的文本地区主动加上关于图片的UBB码,为了分明,上面列出一切用到的文件
服务器文件名用处
diygame.comblog_upfile.asp吸收上传文件用
ylog.netblog_add.asp增加BLOG,上传文件功效在此呈现
ylog.netblog_upload.asp上传文件表单,以iframe的情势嵌在blog_add.asp里
ylog.netblog_upresult.asp显现上传了局,作善后事情
ylog.netblog_upcheck.asp考证用户名与暗码
在公布BLOG页面Blog_add.asp增添一个iFrame,挪用blog_upload.asp举行上传操纵
<iframeborder="0"frameBorder="0"frameSpacing="0"height="25"marginHeight="0"marginWidth="0"noResizescrolling="no"width="100%"vspale="0"src="blog_upload.asp"></iframe>
假如你玩过ASP,天然不费吹灰之力想到,文件要传到别的一个服务器上,只需把blog_upload.asp里的上传Form的action页面指向方针服务器就好了,
<formname="form"method="post"action="http://www.diygame.com/blog_UPFILE.ASP"
//两头略往
//提交时把公布BLOG的按纽disable先,以避免没传完就时用户把BLOG宣布了
<inputtype="submit"class=buttonname="Submit"value="上传">
测试一下,文件上传乐成,那主动加UBB代码呢...
在http://www.diygame.com/blog_UPFILE.ASP里加一句js剧本
<script>parent.frmAnnounce.Content.value+=</script>传上往再测试,毛病提醒"blog_UPFILE.ASP权限不敷",既然diygame.com的文件权限不敷,ylog.net总能够吧,当blog_upfile.asp操纵完成时,再挪用一个本服务器的ASP文件,因而blog_upresult.asp呈现了,他卖力善后
修正blog_upfile.asp,我用C++的习气,正文用//符
servername="www.ylog.net"//标记服务器名
//反省来历,是不是为本人指定的服务器,
ifnotinstr(1,Request.ServerVariables("http_Referer"),servername,1)=8then
response.write"不法来历~!"
response.end
endif
//反省文件巨细,范例,等,这些代码略往,网上良多关于FSO组件的先容
...
//上传代码,略往
....
//乐成后转向的URL,就是实行上传操纵的地点,把信息看成msg传已往
url="http://"&servername&"/blog_upresult.asp?msg="
if上传乐成then//把剧本传已往,由于JS中的+号不克不及被传送.因而利用server.urlencode函数,此剧本在ylog.net上才有权限运转
url=url+"<script>parent.frmAnnounce.Content.value"&server.urlencode("+")&"=</script>"
//把文件名也传送已往,以便存数据库备查
response.redirecturl+"上传乐成&filename="&FileName
endif
上面就是blog_upresult.asp上的代码了,很复杂
//传乐成了,天然要把已diable的提交BLOG按纽恢复
<script>
parent.frmAnnounce.Submit.disabled=false;
</script>
//另有就是把传过去的信息显现出来
response.writerequest("msg")
//假如request("filename")""写进数据库代码省略
response.write"[<ahref=#onclick=history.go(-1)>从头上传</a>]"
看上往perfect了,但如人家失掉了你的源码的话,十拿九稳把你的上传服务器当做收集硬盘用....
只需把hosts文件里的中一句127.0.0.1www.ylog.net
然后响应写一个提交文件用的blog_upload.asp就好了,
头疼ing,代码是不克不及同意有半点平安毛病的,考证的域名能被棍骗,
那就考证上传者的用户名与暗码,diygame.com怎样往ylog.net的数据库上往查询用户名与暗码是不是准确呢
这就少不了xmlhttp
先在ylog.net上做一个blog_upcheck.asp,内容十分复杂,对传的用户名与暗码考证,乐成则输入1,失利则输入0
<%
name=request("name")
psw=request("psw")
checkstr(name)//滤失落SQL字符
checkstr(psw))//滤失落SQL字符
if从数据库反省用户名=乐成then
response.write0
else
response.write1
endif
%>
blog_upfile.asp承受上传之前先挪用此文件考证.上面为代码,固然也是利用域名www.ylog.net但此操纵在diygame.com的服务器上实行,以是与利用者当地的hosts文件有关
<%
str=getHTTPPage("http://"&servername&"/blog_upcheck.asp?name="&name&"&psw="&password)
ifstr"1"then
response.write"不法用户~!"
response.end
endif
//两个操纵函数。十分有效,能够用到其余中央
FunctiongetHTTPPage(URL)
SetHTTPReq=Server.createobject("Microsoft.XMLHTTP")
HTTPReq.Open"GET",URL,False
HTTPReq.send
IfHTTPReq.readyState4ThenExitFunction
getHTTPPage=bytes2BSTR(HTTPReq.responseBody)
SetHTTPReq=Nothing
EndFunction
Functionbytes2BSTR(vIn)
DimstrReturn
DimI,ThisCharCode,NextCharCode
strReturn=""
ForI=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,I,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,I+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
I=I+1
EndIf
Next
bytes2BSTR=strReturn
EndFunction
%>
做到这个中央,终究能够松口吻了,写的很乱,但愿能委曲看懂。。。
假如你有更好的办法大概有甚么看不懂的中央,接待来我的BLOG交换,网址在下面已呈现过良多遍
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况; |
|