in reply to Question regarding CGI and cookies

I and other students do not understand the order of how this runs because it makes sense to us that you would gahter the information, create a cookie, send the cookie to the browser, then retrieve the cookie to print.

Why would you retrieve the cookie you just sent to the browser?

For the rest of the question, I think you are asking where the script gathers the info, creeates the cookie, and sends the cookie to the browser...

#retrieving cookie @purchases = split(/ /, cookie('cookie')); #adding purchase to cookie push(@purchases, $basket); #create cookie $C_records = cookie(-name => "cookie", -value => "@purchases", -path => "/cgi-bin/c11ex6.cgi"); #send cookie to browser print header(-cookie => $C_records);

This section adds the most recent purchase to the @purchases array, creates a cookie with all of the purchases, and then sends the cookie to the browser.

I don't really understand where you think the code shouldn't work. Did what I say help? If not can you clarify?

Replies are listed 'Best First'.
Re^2: Question regarding CGI and cookies
by JOT007 (Novice) on Nov 09, 2004 at 01:14 UTC
    We got the above code to work perfectly, but we are confused about the order the script performs the functions and we wish to understand it. The first function says we are retrieving the cookie, the second says we are adding to the cookie, the third says create the cookie, and the fourth says we are sending the cookie to the browser. To all of us, this does not make sense. How can it retrieve a cookie when it has not been created yet until further down? Does this help in what we are asking? Thank you....
      1. retrieve an old cookie containing *previous* purchases
      2. add *current* purchases to the previous purchases
      3. create a new cookie with the *combined* current and previous purchases
      4. send the new cookie to the browser
      ...
      PROFIT!!!
      
        So how does the script no what to do for the first cookie, if there is no data in the "first" cookie to recieve? Does it create a cookie though there is specification for it? We set the expire date to close when the browser closes (expire field left out for a default setting). This is where we are confused, where does the first cookie come from when you click a purchase and send the data to the script when the order the script will process it does not seem right?