我正在编辑其他人的代码,用 ASP 的服务器端 JS 编写,遇到了一个可能有一个非常简单的解决方案的问题。
我正在从 URL 参数输出一些代码,如下所示:
<%=Request.QueryString("param")%>
Run Code Online (Sandbox Code Playgroud)
问题是,如果参数不存在,我需要做其他事情。所以我试过:
<%
var param = Request.QueryString("param");
if (!param) { param = "Some Default Value"; }
%>
<%=param%>
Run Code Online (Sandbox Code Playgroud)
问题是即使缺少 URL 参数,if似乎也永远不会评估为true。我猜这个!image条件在这里不起作用。我的测试条件应该是什么?
(请放弃有关转义 URL 参数以防止 XSS 的严厉警告。)
我有一个使用 encodeURI 函数在 javascript 中编码的 url:
javascript代码:
encodeURI("form.asp?opt=" + ai_opt + "&val=" + escape(ls_val) + "&col=" + as_col + "&sg=" + ls_sg + "&oldval=" + escape(ls_old_val)
Run Code Online (Sandbox Code Playgroud)
示例输出:
/form.asp?opt=1&val=Field%2520Fisher%2520Waterhouse%2520%2528London%2529&col=loc
Run Code Online (Sandbox Code Playgroud)
如何使用经典asp解码服务器端的查询字符串值?
我应该能够从查询字符串中提取正确的值:
opt = 1
val = Field Fisher Waterhouse (London)
col = loc
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码执行 .bat 以在我的本地主机(服务器端)上启动 notepad.exe:
索引.asp
<%
set wshell = CreateObject("WScript.Shell")
return = wshell.run("c:\file.bat", 4, false)
response.write(return)
set wshell = nothing
%>
Run Code Online (Sandbox Code Playgroud)
文件.bat
notepad.exe
Run Code Online (Sandbox Code Playgroud)
当我打开 ASP 页面时,没有任何反应。由于变量“return”,返回值 0。所以我尝试将false值设置为true,然后服务器冻结并且没有返回任何内容;我认为这是因为没有从 .bat 文件返回值。我还尝试直接运行 notepad.exe ( C:\Windows\notepad.exe ) 而不是使用 .bat 文件,但仍然没有任何反应。我也尝试使用 ASPExec.dll 但也无济于事。
有谁知道我做错了什么?
更多信息:
我的本地 Web 服务器是 Windows 7 附带的 IIS7。我在 localhost 上这样做只是为了测试目的。我必须在 Classic ASP 中完成此操作,因为最终我必须将网站导入 WinCE7 设备。我知道 WshShell 不适用于 WinCE,但现在我只是想看看它是否有效。最终,我将需要能够运行 .exe,通过网站在设备上安装更新。
我有一些asp代码来列出文件夹的内容(仅限txt文件)。我想知道是否有办法只列出创建的最后 10 个文件。
我的应用程序将每天创建一个文件,使用 AAMMDD.txt 作为名称。
我希望能够仅列出最后 10 个文件。
这里有人有一些可以分享的例子吗???
先感谢您。
这是我找到的列出所有内容的代码(我已经对脚本进行了一些更改):
<%
Const ImageFilePath = "logs"
Dim objFSO
Dim objFolder
Dim objFile
Dim strFileName
Dim strFileExtension
Dim blnShowFiles
If Request.QueryString("ShowFiles") = "" Then
blnShowFiles = True
Else
blnShowFiles = CBool(Request.QueryString("ShowFiles"))
End If
Set objFSO = Nothing
%>
<style>
ul.dropdownPC, ul.dropdownPC li, ul.dropdownPC ul
{
list-style: none;
margin: 8px;
float: left;
vertical-align: middle;
padding:0px;
border:solid;
border-width:0px;
border-color:#ccc;
background-color: #fff;
}
ul.dropdownPC li
{
padding:5px;
border-width:0px;
}
</style>
<ul class="dropdownPC dropdown-horizontal"> …Run Code Online (Sandbox Code Playgroud) 经典的asp:
sub a
aryaa(0,0)=1
aryaa(0,1)=2
end
Run Code Online (Sandbox Code Playgroud)
如何在脚本函数中调用这个数组,以及如何将这个 vbscript 数组变成 javascript 数组。
请帮我解决这个问题,因为我已经搜索了 3 天。
谢谢。
谁能告诉我如何在 ASP(经典)中删除所有特殊字符(<>,/\'%;()&+-*)?
这就是我所拥有的,但它不起作用。
Function RemoveBad(strTemp)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "[/\<|\>|\|\'|\%|\;|\(|\)|\&|\+|\-/g]"
RemoveBad = replace(strTemp,regEx.Pattern," ")
End Function
Run Code Online (Sandbox Code Playgroud) 自从我使用经典的 asp 已经有一段时间了,关于变量范围,我已经完全失去了大脑。
我在这里做错了什么?
<SCRIPT LANGUAGE=vbscript RUNAT=Server>
dim test
test = "Test it"
function testAsp()
testasp = "Should be a result here " & test
end function
</SCRIPT>
<html>
<body>
<%
response.write(testAsp())
%>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我在块内移动声明,一切都很好。运行服务器 2008 R2,IIS 7.5。有什么改变吗?或者是我吗?
大家,早安,
我正在开发一个需要升级和重构的旧版 ASP 经典应用程序。需要进行的最大改进之一是通过缓存数据库中的结果来加速应用程序。通过将它们缓存到 .dat 文件,我已经能够成功地做到这一点。此应用程序遵循特定路径,因此我在完成处理后一直删除未使用的缓存文件。但是,在应用程序 (PV.asp) 的最终 .asp 页面上,文件在不应该被删除的情况下被删除了。
我的意图是这样的
<input type="button" value="Done" style="width: 56px; height: 40px" onclick="finish()" />
Run Code Online (Sandbox Code Playgroud)
^ 这是“完成”按钮的代码,它调用finish() 函数。下面是:
function finish() {
var size = "<%response.write(size) %>";
if (size == "0") {
var done = confirm("All Items mod, would you like to save?");
if (done == true)
{
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var concode = "<%=Replace(concode, "\", "\\" )%>";
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) …Run Code Online (Sandbox Code Playgroud) 我尝试在ASP文件中将"PROCENT"替换为"%".
但是我得到了错误:
Error "800a01b6' Object doesn't support this property or method
<%@ language="javascript"%>
<%
var newSpanPosBeschreibung = Request.QueryString("newSpan");
if(newSpanPosBeschreibung.indexOf("PROCENT") >= 0 ){
newSpanPosBeschreibung = newSpanPosBeschreibung.replace(/PROCENT/g, "%");
}
//then save the [newSpanPosBeschreibung] into Databank.
%>
Run Code Online (Sandbox Code Playgroud)
如何将"PROCENT"替换为"%"?谢谢!
我对以下内容感到困惑,希望我能学到一些东西.当我运行以下代码时:
<%
Response.Write "ss = ""1""<br/>"
ss = "1"
Response.Write "ii = 50<br/>"
ii = 50
Response.Write "ss >= ii "
If ss >= ii Then Response.Write "True?" Else Response.Write "False"
Response.Write "<br/>""1"" >= 50 "
If "1" >= 50 Then Response.Write "True" Else Response.Write "False"
%>
Run Code Online (Sandbox Code Playgroud)
它写道:
ss = "1"
ii = 50
ss >= ii True?
"1" >= 50 False
Run Code Online (Sandbox Code Playgroud)
MSDN说 如果操作数是一个数字和一个字符串比较是字符串被转换为双精度并执行数字比较.如果无法将String转换为Double,则抛出InvalidCastException.
我正在使用ASP版本5.8,内部版本号18525.
我不需要一个解决方法,因为我有一个,但我想知道是否有一个原因,因为它是一个容易犯的错误.
编辑:选择正确的答案有一个注释,其中包含2个比较之间差异细节的进一步链接.
asp-classic ×10
javascript ×3
vbscript ×3
jscript ×2
function ×1
iis-7.5 ×1
localhost ×1
scope ×1
server-side ×1
wsh ×1