||Please understand this: ASP does not control the #include-ing of files!|
All processing of #include files is done by the web server before ASP ever gets to see the code! So ASP always sees the full text after all the includes take place!
Yes, you can code things like
<% If Bill = Silly Then %>
<!-- #include file="silly.inc" -->
<% End If %>
But the contents of that include file will always be included! Period. Always.
If you don't believe all the above, here is a way to prove it.
(1) Create the file "junk.inc" and put it in an appropriate virtual directory on your site. The contents of "junk.inc" should be:
(2) Create the file "junk.asp" and put it in the same directory. The contents of "junk.asp" should be:
<% Option Explicit %>
Dim foo, bar
<% If 3 = 2 Then %>
<!-- #include file="junk.inc" -->
<% End If %>
(3) Navigate to "junk.asp" and invoke the page. What do you see?
On my site, I see this:
Microsoft VBScript compilation error '800a0411'
/Testing/junk.inc, line 2
Do you understand why? I used
<% Option Explicit %>, so trying to
Dim a variable that has already been
Dimmed is considered an error.
And even though the code in that include file will not be executed (because obviously the condition
3 = 2 is false!), we still get a compilation error from VBScript when it encounters that extraneous
But if the file had not been included, we would never have see the compilation error, would we have?
Get the point: The file was included even though the if statement would make it look like it wasn't.
Okay? Clear? Understandable? Final word on the subject? (Also be sure to read: The Low-down on #include!)