Link to home
Start Free TrialLog in
Avatar of Bob3975
Bob3975Flag for United States of America

asked on

Response.Redirect & Response.Buffer

The website I've built was created extensively with ASP javascript.  Now that I want to upload files, I've picked up a package called "Free ASP Upload" which does exactly what I want...except it's built in VBScript...for me what seems to be an advanced form of VBScript.  While I could take a few days and rewrite it into javascript, I'm sure it would take a few more days to debug it and then still not be sure I did it right.  I've thought of mixing ASP VBScript and ASP javascript routines on the same page, but that appears to be impossible.

The pages in my website all have a large header containing a chunk of html/asp/javascript.  Because of the includes and complexity, rewriting that into VBScript seems out of the question.

So I thought I'd try to build the header as usual with my ASP javascript then redirect to an asp page built with VBScript/freeASPUpload.  I added Response.Buffer=true to the first page and then do the redirect after passing through the code to build the headers.  The redirect works but I don't get the headers, only the output of the second page.

How can I get this to work?  The code looks generally like...
==============
<%@ Language = javascript%>
<!--#include file="security.asp"-->
<!--#include file="noCache.asp"-->
<%

  /******** Admin Only ********/
  if (Session("Admin")!=1){
    Session.Abandon;
    Response.redirect("login.asp");
  }
  /******** Admin Only ********/
  Response.Buffer = true;
%>
<html>

<head>
<title>Upload League Import File</title>
...
<noscript>
...
</noscript>

<%
    Response.redirect("freeASPUploadTester.asp");
%>
Avatar of GoofyDawg
GoofyDawg
Flag of United States of America image

Have you tried to enclose the VBScript in:

<script language="VBScript" runat="Server">
..VBSCript Code
</script>

You should be able to mix different kinds of code doing this. I did it the other way around with a VBScript ASP page, and then using some JavaScript in a separate section. Worked fine.

GoofyDawg
Avatar of Bob3975

ASKER

When I enclose the VBScript in:

<script language="VBScript" runat="Server">
..VBSCript Code
</script>

I get

Error Type:
Microsoft VBScript compilation (0x800A0400)
Expected statement
<%

It bombs as soon as it sees the asp delimeter <%
ASKER CERTIFIED SOLUTION
Avatar of joeposter649
joeposter649

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of joeposter649
joeposter649

And here's an example of GoofyDawg's answer...

<%@ Language=javascript %>
<%  
response.Write(vbfunction());
%>  
<script language=vbscript runat=server>
function vbfunction()
      vbfunction= "this is from vbscript"
end function
</script>
Avatar of Bob3975

ASKER

Server.Execute !  Seems to work.  Let me make sure by getting rid of a couple of errors I'm getting.

GoofyDawg's solution will fail where indicated below
<%@ Language=javascript %>
<%  
response.Write(vbfunction());
%>  
<script language=vbscript runat=server>
function vbfunction()
    vbfunction= "this is from vbscript"
end function
<%      <----------------   fails
  vb stuff
%>
</script>
Avatar of Bob3975

ASKER

Server.Execute does exactly what I want.  An easy answer to a bunch of points.  But as a wise man once said,"You don't know what you don't know until you're told what you don't know."
Don't use <% %>.
Avatar of Bob3975

ASKER

Unfortunately I believe I have to use <% %>, because of the asp statements in the VBScript such as Response.write.
You're right of course, duh!
No you don't but the order seems to be messed up...

<%@ Language=javascript %>
<%  
response.Write("javascript output<br>");
%>  
<script language=vbscript runat=server>
response.Write("script engine= " & ScriptEngine & "<br>")
</script>
Avatar of Bob3975

ASKER

Clearly, I stand corrected.  Learn something new everyday.  Is it the runat=server that implies this is asp and therefore no <% %> is needed?