n4mation has asked for the wisdom of the Perl Monks concerning the following question:

Could someone explain to me how you can store environment variables in a text file using SSI? I want to learn how to make a simple stats script. I don't have any code, cause I don't have any idea how it's done. I know you can use variables in the include, but I am curious how they do it with a simple <!--#exec cgi="/cgi-bin/mydir/my.cgi" -->

Replies are listed 'Best First'.
Re: SSI Environment Variables
by mpolo (Chaplain) on Dec 08, 2001 at 14:35 UTC
    If you exec a cgi there, you just have to write the CGI. You'll have to get the environment variables and write them to a file. Unless you can guarantee that two people will never simultaneously visit your website, you'll need to use lock files. The environment variables come automatically into the hash %ENV. Using keys, you will be able to identify and process the various variables: (very simplified code without locking)
    open FILE, ">>logfile"; foreach keys %ENV { print FILE, "$_ => ".$ENV{$_} } close FILE;

    Certain environment variables are considered tainted and should be cleared before running this if you wish this to work under the -T flag, as you should.

    Of course, your webserver probably records all of this information in a logfile, assuming you have access to the whole server (normally these get stuck somewhere under /var/log on a *nix system, but it could be configured otherwise.)

Re: SSI Environment Variables
by markjugg (Curate) on Dec 08, 2001 at 18:42 UTC
    Two tips:

    1 . Use printenv and View Source to quickly see the SSI environmental variables: <!--#printenv -->

    2. Read the documentation.

    -mark