#!/usr/bin/perl require 'anneau.pl'; # traitement des arguments # $action -> le premier mot # $source -> l'éventuel deuxième mot, séparé pas '&' ($action, $source) = split(/&/,$ENV{"QUERY_STRING"}); # lien aléatoire if ($action eq "alea") { # ajout dans les stats d'appel if ($app{"$source"} ne '') { # on n'enregistre pas les sources inconnues $app{"$source"}++; } $app{"total"}++; # attribution aléatoire des valeurs d'un site while ($lien eq 'aucun') { &compteuriser; &variabliser; } # si l'internaute n'arrête pas le script, # ajout dans les statistiques de liens $lie{"$select"}++; $lie{"total"}++; # envoi du header de redirection print "Location: $lien\n\n"; # mise à jour des stats &majstats; } print "Content-type: text/html\n\n"; # affichage des stats if ($action eq "stats") { # Récupération et affichage des date et heure en cours $tstats="

Statistiques de l'âne-haut


"; ($sec,$mm,$hh,$jour,$mois,$annee) = (localtime); $annee+=1900; $mois++; if ($sec < 10) { $sec = "0".$sec; } if ($mm < 10) { $mm = "0".$mm; } if ($hh < 10) { $hh = "0".$hh; } if ($mois < 10) { $mois = "0".$mois; } $tstats=$tstats."$jour/$mois/$annee ($hh:$mm:$sec)


\n\n"; # affichage de l'ensemble des statistiques # bannieres affichées $tstats=$tstats."Il y a eu $ban{'total'} bannières affichées

\n\n"; foreach $key (sort keys %ban) { if ($key ne 'total') { $tstats=$tstats."dont $key: $ban{$key} soit "; &pourcent($ban{$key},$ban{'total'}); $tstats=$tstats."$part %

"; } } # appels de liens aléatoires effectués $tstats=$tstats."
Il y a eu $app{'total'} redirections demandées

\n\n"; foreach $key (sort keys %app) { if ($key ne 'total') { $tstats=$tstats."par $key: $app{$key} soit "; &pourcent($app{$key},$app{'total'}); $tstats=$tstats."$part %

"; } } # destination du lien aléatoire $tstats=$tstats."
Il y a eu $lie{'total'} redirections effectuées

\n\n"; foreach $key (sort keys %lie) { if ($key ne 'total') { $tstats=$tstats."vers $key: $lie{$key} soit "; &pourcent($lie{$key},$lie{'total'}); $tstats=$tstats."$part %

"; } } # 1ere place de liste $tstats=$tstats."

Il y a eu $lis{'total'} listes affichées


\n\n"; $tstats=$tstats."
Premieres Places:

\n\n"; foreach $key (sort keys %lis) { if ($key ne 'total') { $tstats=$tstats."$key: $lis{$key} soit "; &pourcent($lis{$key},$lis{'total'}); $tstats=$tstats."$part %

"; } } # destination du lien aléatoire $tstats=$tstats."
Place Moyenne

\n\n"; foreach $key (sort keys %pla) { $tstats=$tstats."$key: "; $part=(int($pla{$key} / $lis{'total'} * 100))/100; $tstats=$tstats."$part

"; } print "$tstats"; if ($source eq "archiver") { # demande d'archivage : # crée une archive, puis affiche les stats et les # archives enregistrées &archiver; &affarchives; } else { # pas de demande d'archivage, donc archivage proposé print 'archiver maintenant
'; if ($source eq "archives") # demande d'affichage d'archives { &affarchives; } else { # pas demande d'affichage d'archives, donc affichage proposé print 'Voir les archives
'; } } } sub pourcent { # renvoit un dénominateur de pourcentage $part=(int($_[0] / $_[1] * 10000))/100; } sub archiver { # crée une archive if (-M "archives.pl" < 5) { # si l'ultime archive a moins de 5 jours, archivage refusé print "L'ultime archive a moins de 5 jours!"; return; } # ajout de la nouvelle archive dans la liste open (farch,">>archives.pl"); print farch "print '$ban{'total'} ($jour/$mois/$annee)
';"; print farch "\n"; close farch; # création de l'archive au format HTML $fcree='../stats/'.$ban{'total'}.'.html'; open (fcree,">$fcree"); print fcree "$tstats"; print fcree "

(pour revenir aux stats, cliquer sur precedent)"; close fcree; } sub affarchives { # affichage de la liste des archives enregistrées print "
Archives :
"; require 'archives.pl'; }