Solved

Response.Redirect & Response.Buffer

Posted on 2004-09-16
11
282 Views
Last Modified: 2008-02-01
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");
%>
0
Comment
Question by:Bob3975
  • 5
  • 3
  • 3
11 Comments
 
LVL 12

Expert Comment

by:GoofyDawg
ID: 12076317
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
0
 

Author Comment

by:Bob3975
ID: 12076635
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 <%
0
 
LVL 15

Accepted Solution

by:
joeposter649 earned 500 total points
ID: 12076812
You can't do a redirect after you output html.  Basically a redirect goes back to the browser and has it request the next page.
I'm not sure what freeASPUploadTester.asp is doing but you could try using server.execute instead of redirect.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 15

Expert Comment

by:joeposter649
ID: 12076906
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>
0
 

Author Comment

by:Bob3975
ID: 12076962
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>
0
 

Author Comment

by:Bob3975
ID: 12077016
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."
0
 
LVL 12

Expert Comment

by:GoofyDawg
ID: 12077351
Don't use <% %>.
0
 

Author Comment

by:Bob3975
ID: 12077423
Unfortunately I believe I have to use <% %>, because of the asp statements in the VBScript such as Response.write.
0
 
LVL 12

Expert Comment

by:GoofyDawg
ID: 12077625
You're right of course, duh!
0
 
LVL 15

Expert Comment

by:joeposter649
ID: 12077684
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>
0
 

Author Comment

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

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Update field in order 21 147
Need help to rewrite script 3 94
RegEx Help - open to other simple suggestions 8 58
Designing forms 3 16
Hello, all! I just recently started using Microsoft's IIS 7.5 within Windows 7, as I just downloaded and installed the 90 day trial of Windows 7. (Got to love Microsoft for allowing 90 days) The main reason for downloading and testing Windows 7 is t…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used.

766 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question