www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Ergänzung

counter1.pl
#!/usr/local/bin/perl -w
# counter1.pl -- Ein einfacher File::CounterFile-basierter Webcounter.

use strict;
use File::CounterFile;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use GD;

my $sessionid = $ENV{'PATH_INFO'};
$sessionid =~ s!/!_!g;
my $query = new CGI;

error("Usage: Set PATH_INFO first!") if (!$sessionid);

$File::CounterFile::DEFAULT_DIR = "/tmp";   # Wo die Zaehler hinsollen.
my $c = new File::CounterFile $sessionid, '00000000';

# Hier wird der Zaehler atomar erhoeht.
my $newvalue = ++$c;

output_as_gif($newvalue);

sub output_as_gif {
    my $message = shift;    # Die auszugebende Nachricht
    my ($x,$y) = (length($message) * gdLargeFont->width() + 10,
          gdLargeFont->height() + 10);
    my $im = new GD::Image($x, $y);

    $im->transparent();
    $im->interlaced('true');
    $im->rectangle(0,0,$x,$y,$im->colorAllocate(0,0,0));

    $im->string(gdLargeFont,5,5,
        $message,$im->colorAllocate(255,255,255));
    my $gif = $im->gif();

    # GIF-Bild zum Browser senden:
    print
    $query->header(-type => 'image/gif', -expires => '-1d'),
    $gif;
}

sub error {
    my $message = shift;
    output_as_gif($message);
    exit 0;
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:55:47 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo