|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;申明:
这是个关于词语搭配的游戏,是用ASP、VBScript和JavaScript写的。
在本机Win98OEM2、PWS、IE5下测试下没发明年夜成绩。</p>
利用办法:
办法一:例如说你的3W服务的目次是C:Inetpubwwwroot,鄙人面建一个目次,如wordAsb;
将游戏文件(wordAsb.asp)拷进目次中;在IE的地点栏中键进http://+你的呆板名+/wordAsb/wordAsb.asp
或http://127.0.0.1/wordAsb/wordAsb.asp,回车,就能够入手下手游戏了
办法二:将游戏文件(wordAsb.asp)任意拷进一新建的目次。鼠标右键点击该目次,菜单当选“属性”,
点“WebSharing”属性页,点选“Sharethisfolder”项,点“OK”就能够了。
在IE的地点栏中键进http://+你的呆板名+/新建目次的称号/wordAsb.asp
或http://127.0.0.1/+新建目次的称号+/wordAsb.asp,回车,就能够入手下手游戏了
注:您的机子OS应当是NT或Win2000Server或其他OS可是装有PWS
游戏办法:
单击游戏中的“游戏申明”就晓得了;
假如偶然页面一片空缺,请按F5革新一遍(这也是今朝最年夜的bug吧),不知为何
代码以下:
--------------------------------------------------------------------------------
<%@Language=VBScript%>
<%
OptionExplicit
LastUpdatedByReconOn03/16/2001
Dimm_iPartCnt
Dimm_strPrompt
Dimm_astrSenPart(),m_astrFileName()
Dimm_astrWords(),m_aiOpStatus()
------------------------------------------
常变量申明
m_iPartCnt:辞汇分类的数量。整型
m_strPrompt:对文件操纵终了后的提醒。字符串型
m_astrSenPart:辞汇分类的称号。字符型数组
m_astrFileName:纪录各种辞汇文件的文件名。字符型数组
m_astrWords:记录各种辞汇。二维字符型数组
m_aiOpStatus:记录对各个文件操纵后的形态。整型数组
------------------------------------------
ShowMethod
m_iPartCnt=4
m_strPrompt=""
ReDimm_astrSenPart(m_iPartCnt)
ReDimm_astrFileName(m_iPartCnt)
ReDimm_astrWords(m_iPartCnt)
ReDimm_aiOpStatus(m_iPartCnt)
界说各类辞汇分类的称号
m_astrSenPart(0)="主语"
m_astrSenPart(1)="水平状语"
m_astrSenPart(2)="地址状语"
m_astrSenPart(3)="谓语"
界说纪录各种辞汇文件的称号
m_astrFileName(0)="Who.txt"
m_astrFileName(1)="How.txt"
m_astrFileName(2)="Where.txt"
m_astrFileName(3)="What.txt"
IfRequest.ServerVariables("REQUEST_METHOD")="POST"Then
假如页面的哀求体例是POST
************************
取得客户真个信息
************************
Dimm_iSenPart
Dimm_strOpWay
Dimm_bRptedData
------------------------------------------
常变量申明
m_iSenPart:暗示辞汇分类的数字。整型
辞汇的分类来自数组m_astrSenPart
大概的值有:
0:主语
1:水平状语
2:地址状语
3:谓语
m_strOpWay:文件操纵体例。字符串型
大概的值有:
1、SAVE:将某类辞汇存进文件
2、SAVEALL:将一切种别的辞汇存进文件
3、LOAD:从文件中载进某类辞汇
4、LOADALL:从文件中载进一切种别的辞汇
m_bRptedData:暗示本次提交的表双数据和前次是不是不异。布尔型
大概的值有:
1、False:表双数据不反复
2、True:表双数据反复(即反复提交表单)
------------------------------------------
ShowForm
取得用户哀求的操纵体例
m_strOpWay=Request.Form("txtOpWay")
Show("m_strOpWay")
取得各个种别的单词
Form_iCount=0To(m_iPartCnt-1)
IfRequest.Form("txtWords"&m_iCount)""Then
m_astrWords(m_iCount)=Split(Request.Form("txtWords"&m_iCount),",")
EndIf
Response.WriteUBound(m_astrWords(m_iCount))&"<br>"
Next
检测是不是反复提交表单
IfSession("FormInf")=Request.FormThen
表单是反复提交
m_bRptedData=True
Else
表单长短反复提交
Session("FormInf")=Request.Form
m_bRptedData=False
EndIf
Show("m_bRptedData")
************************
对单词文件举行操纵
************************
Ifm_bRptedData=FalseThen
Dimm_iCount,m_iErrCnt
Dimm_strFilePath
------------------------------------------
常变量申明
m_iCount:计数器。整型
m_iErrCnt:产生操纵失利的次数。整型
m_strFilePath:纪录各种辞汇文件的路径。字符串型
------------------------------------------
取得安排辞汇文件的路径
m_strFilePath=Request.ServerVariables("PATH_TRANSLATED")
m_strFilePath=Left(m_strFilePath,InStrRev(m_strFilePath,""))
m_strFilePath=m_strFilePath&"Words"
Show("m_strFilePath")
入手下手操纵文件
Response.Write"BegintoOperateWordFiles<br>"
SelectCasem_strOpWay
Case"SAVE"
保留单词到文件中
m_iSenPart=CInt(Request.Form("txtSenPart"))
m_aiOpStatus(m_iSenPart)=SaveFile(m_iSenPart)
依据操纵形态,失掉提醒信息
SelectCasem_aiOpStatus(m_iSenPart)
Case0
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分单词已乐成地被保留到文件中"
Case1
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分文件保留失利"
EndSelect
Case"SAVEALL"
保留一切种别的单词到文件中
m_iErrCnt=0
Form_iCount=0To(m_iPartCnt-1)
m_aiOpStatus(m_iCount)=SaveFile(m_iCount)
Ifm_aiOpStatus(m_iCount)=1Then
m_iErrCnt=m_iErrCnt+1
EndIf
Next
依据操纵形态,失掉提醒信息
SelectCasem_iErrCnt
Case0
m_strPrompt="一切种别的单词都已乐成地被保留到文件中"
Casem_iPartCnt
m_strPrompt="一切种别的单词文件都保留失利"
CaseElse
m_strPrompt="个中,"
Form_iCount=0To(m_iPartCnt-1)
Ifm_aiOpStatus(m_iCount)=1Then
m_strPrompt=m_strPrompt&"["&m_astrSenPart(m_iCount)&"]、"
EndIf
Next
m_strPrompt=Left(m_strPrompt,Len(m_strPrompt)-1)
m_strPrompt=m_strPrompt&"部分文件保留失利"
EndSelect
Case"LOAD"
从文件中载进单词
m_iSenPart=CInt(Request.Form("txtSenPart"))
m_aiOpStatus(m_iSenPart)=LoadFile(m_iSenPart)
依据操纵形态,失掉提醒信息
SelectCasem_aiOpStatus(m_iSenPart)
Case0
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分单词已乐成地被载进"
Case1
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分文件不存在,载进失利"
EndSelect
Case"LOADALL"
从各个文件中载进单词
m_iErrCnt=0
Form_iCount=0To(m_iPartCnt-1)
m_aiOpStatus(m_iCount)=LoadFile(m_iCount)
Ifm_aiOpStatus(m_iCount)=1Then
m_iErrCnt=m_iErrCnt+1
EndIf
Next
依据操纵形态,失掉提醒信息
SelectCasem_iErrCnt
Case0
m_strPrompt="一切种别的单词都已乐成地被载进"
Casem_iPartCnt
m_strPrompt="一切种别的单词文件都不存在,载进完整失利"
CaseElse
m_strPrompt="个中,"
Form_iCount=0To(m_iPartCnt-1)
Ifm_aiOpStatus(m_iCount)=1Then
m_strPrompt=m_strPrompt&"["&m_astrSenPart(m_iCount)&"]、"
EndIf
Next
m_strPrompt=Left(m_strPrompt,Len(m_strPrompt)-1)
m_strPrompt=m_strPrompt&"部分文件不存在,载进部分失利"
EndSelect
EndSelect
EndIf
EndIf
Response.Write"EndtoOperateWordFiles<br>"
Response.Write"BegintoWriteClientPage<br>"
%>
<html>
<head>
<title>词语搭配游戏</title>
<metaname="Generator"content="EditPlus">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
<!--作风表-->
<style>
<!--
/*英笔墨体1*/
.fontEng1
{
font-family:TIMESNEWROMAN;
font-style:;
}
/*英笔墨体2*/
.fontEng2
{
font-family:TIMESNEWROMAN;
font-style:ITALIC;
}
/*夸大字体*/
.fontEmp
{
color:RED;
}
/*链接*/
.link
{
font-family:TIMESNEWROMAN;
font-style:ITALIC;
text-decoration:NONE;
}
/*被显现的单词列表*/
.listShown
{
position:ABSOLUTE;
width:140px;
height:200px;
display:INLINE;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被埋没的单词列表*/
.listHidden
{
position:ABSOLUTE;
width:140px;
height:200px;
display:NONE;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被流动的单词列表*/
.listFixed
{
position:ABSOLUTE;
width:140px;
height:200px;
display:INLINE;
border:RED1pxSOLID;
background-color:GAINSBORO;
}
/*被显现的匡助列表*/
.helpShown
{
position:ABSOLUTE;
width:;
height:;
display:block;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被埋没的匡助列表*/
.helpHidden
{
position:ABSOLUTE;
width:;
height:;
display:NONE;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被流动的匡助列表*/
.helpFixed
{
position:ABSOLUTE;
width:;
height:;
display:block;
border:RED1pxSOLID;
background-color:GAINSBORO;
}
/*被夸大显现的标签*/
.lblMOver
{
text-decoration:NONE;
color:LIGHTCORAL;
background-color:;
}
/*一般显现的标签*/
.lblMOut
{
text-decoration:NONE;
color:;
background-color:;
}
/*被点击过的标签*/
.lblClicked
{
text-decoration:UNDERLINE;
color:RED;
background-color:;
}
/*高亮显现的按钮*/
.btnLighted
{
width:105px;
color:BLUE;
background-color:;
}
/*一般显现的按钮*/
.btnDelighted
{
width:105px;
color:;
background-color:;
}
/*高亮显现的单词列表项*/
.optLighted
{
text-decoration:UNDERLINE;
color:BLUE;
background-color:;
cursor:HAND;
}
/*一般显现的单词列表项*/
.optDelighted
{
text-decoration:NONE;
color:;
background-color:;
cursor:;
}
-->
</style>
<!--客户端剧本-->
<scriptlanguage="JavaScript">
<!--
//客户端公用及测试函数
//************************
//函数名:lTrim
//功效:往失落字串右边的空格
//输出:1、strTemp:要规整的字串。字符串型
//输入:规整后的字串。字符串型
//************************
functionlTrim(strTemp)
{
variCount,iLength;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iLength:字串的长度。整型
//------------------------------------------
iLength=strTemp.length;
for(iCount=0;iCount<iLength;iCount++)
if(strTemp.charAt(iCount)!="")
returnstrTemp.substring(iCount,iLength);
return"";
}
//************************
//函数名:rTrim
//功效:往失落字串右侧的空格
//输出:1、strTemp:要规整的字串。字符串型
//输入:规整后的字串。字符串型
//************************
functionrTrim(strTemp)
{
variCount,iLength;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iLength:字串的长度。整型
//------------------------------------------
iLength=strTemp.length;
for(iCount=iLength-1;iCount>=0;iCount--)
if(strTemp.charAt(iCount)!="")
returnstrTemp.substring(0,iCount+1);
return"";
}
//************************
//函数名:trim
//功效:往失落字串双方的空格
//输出:1、strTemp:要规整的字串。字符串型
//输入:规整后的字串。字符串型
//************************
functiontrim(strTemp)
{
returnrTrim(lTrim(strTemp));
}
//将2位数字转换成2位数字字串
//************************
//函数名:get2bNumStr
//功效:转换2位的数字成2位的数字字串
//输出:1、iNumber:要转换的数字。整型
//输入:转换后失掉的数字字串。整型
//************************
functionget2bNumStr(iNumber)
{
varstr2bNum;
//------------------------------------------
//常变量申明
//str2bNum:数字字串。字符串型
//------------------------------------------
if(parseInt(iNumber)<10)
str2bNum="0"+iNumber;
else
str2bNum=""+iNumber;
returnstr2bNum;
}
//************************
//函数名:assignFunc
//功效:指定元素的事务处置函数
//输出:1、ele:要指定事务处置函数的元素。工具型
//2、func:事务处置函数。函数型
//3、event:事务范例。字符串型
//输入:无
//************************
functionassignFunc(ele,func,event)
{
variCount,iEleCount;
varstrEvent;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iEleCount:同名元素汇合中元素的个数。整型
//strEvent:事务范例。字符串型
//------------------------------------------
if(event==null)
strEvent="onclick";
else
strEvent=event;
iEleCount=ele.length;
if(iEleCount==undefined)
eval("ele."+strEvent+"="+func);
else
for(iCount=0;iCount<iEleCount;iCount++)
eval("ele[iCount]."+strEvent+"="+func);
}
//************************
//函数名:getEleIndex
//功效:失掉产生事务的元素在同名汇合中的索引
//输出:1、eleSrc:产生事务的元素。工具型
//输入:产生事务的元素在同名汇合中的索引
//************************
functiongetEleIndex(eleSrc)
{
varcolSrc;
variCount,iEleCount;
//------------------------------------------
//常变量申明
//colSrc:同名元素汇合。工具型数组
//iCount:计数器。整型
//iEleCount:同名元素汇合中元素的个数。整型
//------------------------------------------
colSrc=eval(eleSrc.id);
iEleCount=colSrc.length;
for(iCount=0;iCount<iEleCount;iCount++)
{
if(colSrc[iCount]==eleSrc)
returniCount;
}
return-1;
}
//显现常变量的值(调试用)
//!筹办删往
functionshow(strDef1,strDef2,strDef3,strDef4)
{
variCount,iDefCnt;
varstrShow,strTemp;
iDefCnt=4;
strShow="[常变量值]";
for(iCount=1;iCount<=iDefCnt;iCount++)
{
strTemp=eval("strDef"+iCount);
if(strTemp!=undefined&&strTemp!=null)
strShow+="
"+strTemp+":"+eval(strTemp);
}
alert(strShow);
}
//************************
//函数名:showArray
//功效:显现一维数组的元素(调试用)
//输出:1、array:要显现的一维数组。数组
//输入:无
//************************
functionshowArray(array)
{
variCount,iEleCount;
varstrShow;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iEleCount:数组元素的个数。整型
//strShow:数组元素值组成的字串。字符串型
//------------------------------------------
iEleCount=array.length;
strShow="ArrayLength:"+iEleCount;
strShow+="
---------------------------------
";
for(iCount=0;iCount<iEleCount;iCount++)
{
if(typeof(array[iCount])=="object")
strShow+=array[iCount].id+"";
else
strShow+=array[iCount]+"";
}
alert(strShow);
}
//************************
//函数名:show2DArray
//功效:显现二维数组的元素(调试用)
//输出:1、array:要显现的二维数组。数组
//输入:无
//************************
functionshow2DArray(array)
{
variX,iY,iLen1,iLen2;
varstrShow;
//------------------------------------------
//常变量申明
//iX:计数器。整型
//iY:计数器。整型
//iLen1:数组一维的数量。整型
//iLen2:数组二维的数量。整型
//strShow:数组元素值组成的字串。字符串型
//------------------------------------------
iLen1=array.length;
strShow="Array1DLength:"+iLen1;
strShow+="
---------------------------------";
for(iX=0;iX<iLen1;iX++)
{
strShow+="
";
iLen2=array[iX].length;
for(iY=0;iY<iLen2;iY++)
strShow+=array[iX][iY]+"";
}
alert(strShow);
}
//-->
</script>
<scriptlanguage="JavaScript">
<!--
//--------------------函数列表--------------------------
//window_onload
//
//getWord
//reset
//save
//load
//
//showList
//hideList
//fixList
//valueList
//
//showHelp
//hideHelp
//fixHelp
//
//resetAll
//saveAll
//loadAll
//assemble
//
//lightBtn
//delightBtn
//lightOpt
//delightOpt
//
//makeOpt
//removeOpt
//-----------------------------------------------------------
varm_iPartCnt;
varm_astrSenPart,m_astrWords;
varm_strPrompt;
varm_iListFixed,m_iHelpFixed;
//------------------------------------------
//常变量申明
//m_iPartCnt:辞汇分类的数量。整型
//m_astrSenPart:辞汇分类的称号。字符型数组
//m_astrWords:记录各种辞汇。二维字符型数组
//m_strPrompt:文件操纵终了后的提醒信息。字符串型
//m_iListFixed:代表被流动单词列表的数字。整型
//-1暗示没有单词列表被流动
//m_iHelpFixed:暗示匡助列表流动形态的数字。整型
//-1暗示匡助列表没有被流动
//------------------------------------------
window.onload=window_onload;
//-----------------------------------------------------------
//初始化页面
functionwindow_onload()
{
variCount,iEleCnt;
varcolButton;
varstrHelp;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iEleCnt:汇合中元素的个数。整型
//colButton:BUTTON元素的汇合。工具型数组
//strHelp:匡助文件内容。字符串型
//------------------------------------------
m_iPartCnt=<%=m_iPartCnt%>;
m_strPrompt="<%=m_strPrompt%>";
m_iListFixed=-1;
m_iHelpFixed=-1;
m_astrSenPart=newArray();
m_astrWords=newArray();
//alert("m_iPartCnt:"+m_iPartCnt+"
m_strPrompt:"+m_strPrompt);
//失掉辞汇分类的称号和已载进的各种辞汇
<%Form_iCount=0To(m_iPartCnt-1)%>
//失掉已载进的各种辞汇
<%IfIsEmpty(m_astrWords(m_iCount))=TrueThen%>
m_astrWords[<%=m_iCount%>]=newArray();
<%Else%>
m_astrWords[<%=m_iCount%>]="<%=Join(m_astrWords(m_iCount),",")%>".split(",");
<%EndIf%>
//失掉辞汇分类的称号
m_astrSenPart[<%=m_iCount%>]="<%=m_astrSenPart(m_iCount)%>";
<%Next%>
//show2DArray(m_astrWords);
//showArray(m_astrSenPart);
//将已载进的各种辞汇写进到页面中
for(iCount=0;iCount<m_iPartCnt;iCount++)
valueList(m_astrWords[iCount],iCount);
//载进匡助文件
//strHelp=tblHelp.outerHTML;
//strHelp=divHelp1.innerHTML;
//tblHelp.outerHTML="";
//divHelp.innerHTML=strHelp;
//tblHelp.style.display="";
//divHelp.style.display="NONE";
//divHelp.style.left=divHelp1.style.left;
//alert("left:"+divHelp.style.left+"
left:"+divHelp1.style.left);
//alert("pixelleft:"+divHelp.style.pixelLeft+"
pixelleft:"+divHelp1.style.pixelLeft);
//alert("posLeft:"+divHelp.style.posLeft+"
posLeft:"+divHelp1.style.posLeft);
//alert("offsetLeft:"+divHelp.offsetLeft+"
offsetLeft:"+divHelp1.offsetLeft);
//alert("clientLeft:"+divHelp.clientLeft+"
clientLeft:"+divHelp1.clientLeft);
//指定页面元素的事务处置函数
assignFunc(txtWord,getWord,"onkeypress");
assignFunc(btnGetWord,getWord);
assignFunc(btnReset,reset);
assignFunc(btnSave,save);
assignFunc(btnLoad,load);
assignFunc(lblWordList,showList,"onmou搜索引擎优化ver");
assignFunc(lblWordList,hideList,"onmou搜索引擎优化ut");
assignFunc(lblWordList,fixList);
assignFunc(lblHelp,showHelp,"onmou搜索引擎优化ver");
assignFunc(lblHelp,hideHelp,"onmou搜索引擎优化ut");
assignFunc(lblHelp,fixHelp);
assignFunc(btnResetAll,resetAll);
assignFunc(btnSaveAll,saveAll);
assignFunc(btnLoadAll,loadAll);
assignFunc(btnAsb,assemble);
colButton=document.all.tags("BUTTON");
iEleCnt=colButton.length;
//showArray(colButton);
//alert("iEleCnt:"+iEleCnt);
for(iCount=0;iCount<iEleCnt;iCount++)
{
assignFunc(colButton[iCount],lightBtn,"onmou搜索引擎优化ver");
assignFunc(colButton[iCount],delightBtn,"onmou搜索引擎优化ut");
}
//设置页面初始形态
if(m_strPrompt!="")
alert(m_strPrompt);
txtWord[0].focus();
}
<p>//-----------------------------------------------------------
//失掉用户输出的单词
functiongetWord()
{
//只要当在单词输出框中按回车或
//按“保留”按钮时才持续做下往
if(window.event.type!="keypress"&&window.event.type!="click")
return;
else
if(window.event.type=="keypress"&&window.event.keyCode!=13)return;
vareleSrc;
variIndex,iNxtWrdIdx;
varstrWord;
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失; |
|