fraktalisman has asked for the wisdom of the Perl Monks concerning the following question:
#!/usr/bin/perl use CGI; use Fcntl qw(:DEFAULT :flock); $mailprog = '/usr/sbin/sendmail'; $recipient = 'info@active-websight.de'; $appname = 'playcounter'; $query = new CGI; $rubrik=$query->param('rubrik'); $countfile="gespielt-gesamt.txt"; $bereich="insgesamt"; &countIt; if ($rubrik ne "") { $countfile="gespielt--$rubrik.txt"; $bereich="in der Rubrik $rubrik"; &countIt; } exit(0); ############## sub countIt { sysopen(FH, "$countfile", O_RDWR | O_CREAT) or &fehler; # autoflush FH $ofh = select(FH); $| = 1; select ($ofh); flock(FH, LOCK_EX) or &fehler; # Dateizugriff anfordern $zahl = <FH> || 0; $zahl++; seek(FH, 0, 0) or &fehler; print FH $zahl, "\n" or &fehler; truncate(FH, tell(FH)) or &fehler; close(FH) or &fehler; if (($zahl/100)==int($zahl/100) and $zahl>99) { &nachricht;} } ################ sub nachricht { $betreff="$zahl Puzzles gespielt $bereich"; if ($fehler ne "") {$betreff="FEHLERMELDUNG !!!";} open(MAIL,"|$mailprog -t") or goto NOMAIL; print MAIL "To: $recipient\n"; print MAIL "From: info\@puzzleme.de ($appname)\n"; print MAIL "Subject: $betreff\n"; print MAIL "$appname meldet:\n\n"; print MAIL "$betreff.\n"; if ($fehler ne "") {print MAIL "$fehler\n";} close (MAIL); NOMAIL: } ################ sub fehler { $fehler="Fehler ($!) beim Schreiben von $countfile"; &nachricht; exit(0); } ################
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: CGI counter resets for no obvious reason
by flocto (Pilgrim) on Jan 30, 2001 at 18:23 UTC | |
by extremely (Priest) on Jan 30, 2001 at 21:04 UTC | |
by damian1301 (Curate) on Jan 30, 2001 at 21:25 UTC | |
by flocto (Pilgrim) on Jan 31, 2001 at 03:56 UTC | |
|
Re: CGI counter resets for no obvious reason
by cianoz (Friar) on Jan 30, 2001 at 18:17 UTC |