ASP 101 - Active Server Pages 101 - Web06
The Place ASP Developers Go!

Please visit our partners

Windows Technology Windows Technology
15 Seconds
ASP 101
ASP Wire
VB Forums
VB Wire
internet.commerce internet.commerce
Partners & Affiliates

ASP 101 is an site
ASP 101 is an site
Internet News
Small Business
Personal Technology

Corporate Info
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash

Script Output:
ASP Source Code:
<B>ASP Source Code:</B>
Dim objFSO, objInFile 'object variables for file access
Dim strIn, strTemp    'string variables for reading and color processing
Dim I                 'standard loop control variable
Dim strASPFileName    'string containing filename of ASP file to view
Dim ProcessString     'flag determining whether or not to output each line
' We don't start showing code till we find the start script comment
ProcessString = 0
' Get file name from query string
strASPFileName = Request.QueryString("file")
' Conditional limiting use of this file to current directory
If InStr(1, strASPFileName, "\", 1) Then strASPFileName = ""
If InStr(1, strASPFileName, "/", 1) Then strASPFileName = ""
' Set the default so it shows itself if nothing or an invalid
' path is passed in.  Delete the following line to just display
' a message.
If strASPFileName = "" Then strASPFileName = "source.asp"
If strASPFileName <> "" Then
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	Set objInFile = objFSO.OpenTextFile(Server.MapPath(strASPFileName))
	Response.Write "<PRE>" & vbCRLF
	' Loop Through Real File and Output Results to Browser
	Do While Not objInFile.AtEndOfStream
		strIn = Server.HTMLEncode(objInFile.ReadLine)
		' Check for start script comment
		If InStr(1, strIn, "<!-- BEGIN SCRIPT -->", 1) Then
			ProcessString = 1
			strIn = Server.HTMLEncode(objInFile.ReadLine)
		End If
		' Check for end script comment
		If InStr(1, strIn, "<!-- END SCRIPT -->", 1) Then ProcessString = 0
		' If we're on a line to be processed then do so
		If ProcessString = 1 Then
			strTemp = ""
			' Loop through line
			For I = 1 to Len(strIn)
				' First look for script openers to start red
				If InStr(I, strIn, "<%", 1) = I Then
		 			strTemp = strTemp & "<FONT COLOR=#FF0000>" & Mid(strIn, I, 1)
					' If no script openers look for closers to end red
					If InStr(I, strIn, "%>", 1) = I Then
						strTemp = strTemp & "%></FONT>"
						I = I + 4
						' If neither just copy to strTemp as is
						strTemp = strTemp & Mid(strIn, I, 1)
					End If
				End If
			' Output out processed line
			Response.Write strTemp & vbCRLF
		End If
	Response.Write "</PRE>" & vbCRLF
	' Close file and free variables
	Set objInFile = Nothing
	Set objFSO = Nothing
	' If they entered no filename or one with a / or \ ... deny access
	Response.Write "Sorry, but you do not have access to view files outside the current directory."
End If

ASP HTML Download            FAQ

ASP.NET Version

Now that you've seen some hypothetical samples, how about something we actually use on this very site! A simple script to display asp code from the asp file. What the heck, it's already written, we might as well let you see it!

Let me guess, you're saying "Sure that's neat but what do I use it for?" Two quick thoughts:

First if you happen to be running an ASP related site, it's a quick way to get the source code of any part of any page on your site and as an added benefit when you change the asp file, you don't have to change the source code. Not to mention preventing typos! (Are any of you sites that hard code your sample source code listening to this?)

Now that the first (not so) quick thought is finished and every one is thinking "I do everything I can to hide my source code, why in the world would I use this!", how about this: Ever try and look at your web server's log files directly? How about colorizing them and making them accessible through a web browser? (Lines with errors in red sound good? Maybe just the 404's?) Now I've got you thinking don't I! With a few simple changes the above script will handle basically any text-readable set of files that have a pre-defined format. The only things you'd need to change would be the Begin Script and End Script comments (if you even want to use them), and what you look for to colorize and the colors you want things to appear in. All this without ever having to change the source files.

Wait a minute.... If this script outputs it's own source, what am I putting these view source buttons here for? I don't know, but just in case...

Update! We've improved the real script we use on the site! It now colorizes ASP comments a different color from actual code! For simplicity, we'll leave this sample as is. However, if you'd like to see the new code or use it on your own site look here!


Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback
The Network for Technology Professionals



Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers