in reply to Re^3: Add timestamp to helpdesk form
in thread Add timestamp to helpdesk form

Ahhh I see. The book is Sam's Teach Yourself PERL in 24 hours. That form sends data to this CGI I believe (nothing is really functional just theory behind how it would work I guess. Here is the CGI file at hand:
#!/usr/bin/perl -w use strict; use CGI qw(:all); use Fcntl qw(:flock); # Location of the guestbook log file. Change this to suit your needs my $gbdata="http://www.perl03.georgeself.com/cgi-bin/forms.txt"; # Any file name will do for semaphore. my $semaphore_file="/tmp/helpdesk.sem"; # Function to lock (waits indefinitely) sub get_lock { open(SEM, ">$semaphore_file") || die "Cannot create semaphore: $!"; flock(SEM, LOCK_EX) || die "Cannot lock: $!"; } # Function to unlock sub release_lock { close(SEM); } # This function saves a passed-in help desk HTML form to a file sub save { get_lock(); open(GB, ">>$gbdata") || die "Cannot open $gbdata: $!"; print GB "name: ", param('name'), "\n"; print GB "type: ", param('probtype'), "\n"; print GB "problem: ", param('problem'), "\n"; close(GB); release_lock(); } # This function displays the contents of the help desk log file as HTM +L, # with minimal formatting. sub display { open(GB, $gbdata) || die "Cannot open $gbdata: $!"; while(<GB>){ print "<B>$_</B><P>"; # The name my($type,$prob); $type=<GB>; # Assumes that each entry is $prob=<GB>; # exactly 3-lines long... print "$type<P>"; print "$prob<BR><HR>"; } close(GB); } print header; # The parameter 'submit' is only passed if this CGI program was # executed by pressing the 'submit' button in the form in listing 22.7 if (defined param('submit')) { save; display; } else { display; }

Replies are listed 'Best First'.
Re^5: Add timestamp to helpdesk form
by jeffa (Bishop) on Jul 03, 2014 at 21:58 UTC

    Ok. So your "database" is defined here:

    my $gbdata="http://www.perl03.georgeself.com/cgi-bin/forms.txt";

    All you should need to do is add a line to save() and a few more lines to display():

    sub save { ... print GB "problem: ", param('problem'), "\n"; print GB "time: ", scalar(localtime), "\n"; ... } ... sub display { ... $prob=<GB>; my $time=<GB>; ... # print $time however you like }
    See if this works for ya!

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)