| Active Server Pages: Subroutines and Include/virtual |
Subroutines have the same utility in ASP as it has in other languages.
In the next two examples, we have asked our visitors his name, and depending on that answer a different response is sent to the client. The response will be the same in both cases, but in the second one subroutines are used. The use of subroutines may be very useful when there are a lot of instructions to be perform within a subroutine. This way it will allow us to simplify the structure of our script.
Example 1
| <%
TheName=request.form("name) if TheName="John" then
|
| <%
TheName=request.form("name) if TheName="John" then
Sub ResponseToJohn()
Sub ResponseToUnknown()
%> |
In order to call a subroutine, we will use this kind of code:
Whatever()
Where Whatever is the name of the subroutine (it is recommended to use a very descriptive name of the task we want to perform within the subroutine to make it easier to understand the script). We may also provide information to the subroutine in order to perform the specified task. The data will be provided this way:
Whatever(data1, data2 ... dataN)
In the following example we will provide different data to a unique subroutine depending on the Name of the person provided throw a form:
Example 3
| <%
TheName=request.form("name) if TheName="John" then
Sub ResponseToVisitor(AA,BB,CC)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
In line 14 it is specified AA is the first variable to be get, BB the second one, and CC the third one. The values for the three variables are provided in the same order in line 5 or line 8.
The example above also shows subroutines are very useful to avoid repeating
a specific number of tasks several times within the script, so that the
script looks more organized and it is smaller.
Server Site includes or SSI is a very simple programing language (see a small tutorial) but it also has a very limited number of instructions. We will consider only one option SSI allows us to use within our asp scripts: include/virtual.
In the next example we will use the include option of SSI in a our asp script (response.asp). This command allows as to add a set of instructions from different files (file1.txt and file2.txt bellow) and execute them.
Example 4
| response.asp |
| <%
TheName=request.form("name) if TheName="John" then
|
| File1.html |
| Hi, John.<br>
I know your are 31 years old, you are married to Sue, and you are living in New York. |
| File2.asp |
| <%
for i=1 to 3 response.write(Thename & "...<BR>") next response.write("Who are you?") %> |
In this case, if the name of the person who is visiting our page is John, then we will respond with file1.html. If not, then we will execute some asp instructions from file2.asp.
The include file must be a text file (.txt, .html, .htm, .shtml, .asp...).
Although we have used file1.html and file2.asp, the script will work exactly
in the same way with file1.txt and file2.txt (changing the name of the
files would have no effect).
By using SSI and asp we may also get a secret page:
| secret_page.asp |
| <%
UserName=request.form ("username") Password=request.form("password") if UserName="myusername" and Password="mypassword" then %> <!--#include virtual="/cgi-bin/secret_info.txt" --> <% else %> <Form Action=secretpage.asp method=post> Username: <input type=text name=username size=15><BR> Password: <input type=text name=password size=15><BR> <input type=Submit Value=Send> </form> <% end if %> |
| secret_info.txt |
| This is my secret information:<BR>
My name is John.<BR> My surname is Smith.<BR> <BR>End of secret information. |
In this case it is convenient to save secret_info.txt file in the cgi-bin directory (the .txt file is not accessible by visitors from this directory, but it will be accessible from our top directory).