Solved

displaying HTML page after cookie set

Posted on 1998-11-20
2
169 Views
Last Modified: 2013-12-25
Here's the scenario that a user would go through when selecting a particular link on the site I'm building:

1.  cgi script that determines whether the user has ever been there before.  If "yes" then #4 below, else #2.
2.  form for first-timers that asks for a couple pieces of info.
3.  cgi script which stores the couple pieces of info in a cookie.
4.  the main page of interest.

My question is how does the script in #3 manage both to write a cookie AND then give the user a complex HTML page back?  I want the HTML page in its own file, i.e., I don't want to just print it out one line at a time from my Perl cgi script.  The last two lines of the script currently look like this...

print "Content-type: text/html\n";
print "Set-Cookie: username=$FORM{'username'} calhost=$FORM{'calhost'};
expires=Thu, 31-Dec-98 12:00:00 PST; path=/projects/blitz\n\n";

I thought of having the next line output a server-side include for the entire HTML file, but the server I'm using (I'm not the webmaster) doesn't seem to be set up for SSIs.

Is there another way?  
0
Comment
Question by:leta
2 Comments
 
LVL 2

Accepted Solution

by:
chrisbolt earned 100 total points
ID: 1829714
First of all, I think the Set-Cookie header should be printed before the Content-type header but I am not sure... second, for the complex page you have a couple of options:

1: Use this code to open a separate file and print the output:

open(INFOFORM,"/path/to/htmlfile.html");
print <INFOFORM>;
close(INFOFORM);

2: Instead of printing each line out separately, print it like this:

print <<EOHTML;
<HTML>
. (the rest of your page goes here, just remember to escape @ with the backslash. Quotes and everything work okay, and you don't have to print it out line by line)
</HTML>
EOHTML
0
 

Author Comment

by:leta
ID: 1829715
Solution #2 doesn't meet my criterion that my complex HTML
file be allowed to remain a separate file.  But solution #1
is PERFECT!  I'm rather embarrassed that I couldn't think of
this, but I was so sure that there was some cgi thing that I
didn't know about that I wasn't spending much energy on Perl
solutions.  I did try one very similar thing...

      system("cat myhtmlfile");

but the output from system calls evidently doesn't go to the
same place as the output from print statements.  It should have
been a small mental leap from my attempt to yours, but I was
mentally blocked by that point!

THANKS!!!  
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Batch, VBS, and scripts in general are incredibly useful for repetitive tasks.  Some tasks can take a while to complete and it can be annoying to check back only to discover that your script finished 5 minutes ago.  Some scripts may complete nearly …
This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
The viewer will learn how to dynamically set the form action using jQuery.

785 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