I'd like to suggest that $ENV{PATH_INFO} may be a good way to pass a unique page name to your script, and end you up with a more friendly set of URIs as a bonus.

For example, In the url http://example.com/index.cgi/foo/bar the PATH_INFO is the /foo/bar part, the part that appears after the script that your server chooses.

This makes for lovely bookmarkable pages, because it's just a string at the end of the filename, and that you can use form variables for ther things, because /index.cgi/foo/bar?user_action=update_cart has the 2 parts still, the first being PATH_INFO, the second being the GET (QUERY_INFO) variables that are accessible via CGI.pm's param method.

Also, if your script is set up as the directory index, you don't need to list it there at all, and my uri of http://example.com/index.cgi/foo/bar becomes http://example.com/foo/bar because the '' after the domain name is expanded to index.cgi by the webserver.

It's so sneaky that nobody will ever suspect that you're using dynamic content.

keep in mind that with any of these approaches, you have to make sure that you send sensible modification headers, expire dates and content types otherwise you risk confusing proxy/cache servers...

@_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;

In reply to Re: Multiple Pages with CGI by f00li5h
in thread Multiple Pages with CGI by Trihedralguy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.