He who must not be named wrote:
...the information will be appended to a file on the server.
Appended how? The following meets your specs, but is probably useless:
#!/usr/bin/perl -wT
use strict;
use CGI;
use Fcntl qw/ :DEFAULT :flock /;
use Data::Dumper;
my $q = CGI->new;
my $log_file = 'some_file.log';
my %params = map { $_, [ $q->param( $_ ) ] } $q->param;
open LOG, ">>", $log_file or die "Can't open $log_file for appendin
+g: $!";
flock LOG, LOCK_EX or die "Can't get an exclusive lock on $l
+og_file: $!";
print LOG Dumper( \%params ) or die "Can't print to $log_file: $!";
close LOG or die "Can't close $log_file: $!";
Your questions:
- What's the quick-and-dirty way to get this done, with Perl?
See near useless code above
- What web server must be running? Is this OS-specific? Any quirks?
Doesn't really matter. CGI is not platform specific and all Web servers should recognize it.
- What security risk does this pose, and how can that be avoided? Assume a win9x or NT system. Or assume a linux system. But please tell me which you mean :-)
Security risks? Practically none, but here are some questions:
- How much data would get written out? If you have too much data written to the log, your disk space could fill up.
- What do you plan to do with the log? Who will see it and how? If you plan to have an HTML log and serve it directly, you could have issues with SSIs (though I think it's unlikely you would do this).
- What data is stored there? Is it sensitive?
- Your users can't specify the log filename, can they?
- What's a good way of organizing the database for both human readability and data munging?
That really depends upon the data you are planning to log. Could you give us some samples?
Not trying to be too flippant here. If you can give us more info, that would help.
Cheers,
Ovid
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.