?
Solved

displaying HTML page after cookie set

Posted on 1998-11-20
2
Medium Priority
?
173 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 2

Accepted Solution

by:
chrisbolt earned 400 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

Stressed Out?

Watch some penguins on the livecam!

Question has a verified solution.

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

A quick Powershell script I wrote to find old program installations and check versions of a specific file across the network.
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
Suggested Courses

777 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