• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Asp. внешние функции, определяемые переменной.

  • Автор темы latrommi
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

latrommi

#1
Добрый день, уважаемые!

Сиим вопрошаю обратить внимание и указать направление поисков по следующему вопросу:

[index.asp]
Код:
<%
s = "any_function"
' TODO: execute function "any_function"
%>
[functions.asp]
Код:
<%
public function any_function()
any_function = "result"
end function
%>
Задача: запустить функцию, находящуюся в файле functions.asp из файла index.asp (в строке TODO) при условии, что имя функции задается некоторой переменной.

Есть ли такие средства в ASP?

Да, и, в самом деле, это прототип задачи. Полная задача расширяется до передачи в эту функцию нескольких параметров и получении обратного результата :)

Быть может есть альтернативное решение?

Спасибо за понимание! :)
 

ioni

Well-known member
11.05.2006
340
0
#4
Код:
<%@LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Server.Execute Method in Action</title>
</head>
<body>
<% If Request.QueryString("file")="" Then %>
This is the main page!<br><br>
<a href="main.asp?file=file1.asp">Execute File1.asp</a> | 
<a href="main.asp?file=file2.asp">Execute File2.asp</a>
<% Else %>
<a href="main.asp">Back</a>
<% Server.Execute Request.QueryString("file") %>
<% End If %>
</body>
</html>
 
L

latrommi

#5
ioni,
Грациас! Но, это немного не то :)

Упрощу задачу.

[index.asp]
Код:
<%
s = Request.QueryString("f")

r = танец_с_бубном(s)

Response.Write r

public function f1()
f1 = "result1"
end function

public function f2()
f2 = "result2"
end function

%>
Теперь при:
_http://server/index.asp?f=f1 получаем "result1"
_http://server/index.asp?f=f2 получаем "result2"

Кхе, нужен код функции танец_с_бубном() :)

Вся фишка в необходимости вызова функции, имя которой мы узнаем из внешних источников во время выполнения скрипта.
 
L

latrommi

#6
Код:
<%
s = "f(1)"
execute "r=f(1)"

response.Write r

public function f(i)
f = i + 1
end function
%>
получаем 2.

мдя, синтаксис, однако :)
 

ioni

Well-known member
11.05.2006
340
0
#7
Я что-такое помню - были проблемы у меня..

Я решал двумя способами:
1/Передача всех необходимых параметров в одной строке запроса, потому что файлы, вызванные методом Server.Execute() читают строку запросу QueryString основного файла своей - так что, если вызывать (как в моем примере) main.asp?file=file1.asp&view=all, то file1.asp видит значение передаваемого параметра view = all.

2/ Метод выодва отдельным фалом через WinSocket - но учти, что в таком случае открывается новая сессия для вызываемого файла, со всеми вытекающими последствиями.

С другой стороны, мне кажется (это может быть и не так), что ты начинаешь использовать ASP для создания кода программы в момент ее исполнения - тогда тебе нужен NET, а не классический ASP.

Тем более, что НЕТ - это более продвинутая технология, за которой точно будущее (для того, чтобы предотвратить споры - будущее для ASP)
 
Статус
Закрыто для дальнейших ответов.