PDA

Visualizza la versione completa : [PERL] Visualizzare contatore in pagina Web


PaoloNA
14-01-2007, 13:34
Salve.

Non so se è la sezione giusta (credo di si perchè ho un contatore programmato in un certo modo)... e il problema è proprio che in Explorer viene visualizzata una X in luogo del numero di accessi... mentre con Mozilla funziona.

Ho Avast, ma non credo influisca.

Inoltre da un altro PC dove prima vedevo il contatore, semplicemente dopo aver formattato non lo vedo più.

Sarà un problema di impostazioni di Explorer? Potreste suggerirmi quali?

Segue il listato del file (contatore_noSSI.pl) nella cartella cgi-bin:
#!/usr/bin/perl




$lunghezza = 1;
$altezzapixel = 1;

$contrastoNeroBianco = 0;

$blocco = 5;
$percorsoCgi = $ENV{QUERY_STRING};


&azioneFinale;

&aumentoConteggio;

&creoBmp;
&scrivoBmp;

exit(0);


sub scrivoBmp {
print ("Content-type: image/x-xbitmap\n\n");
if ($altezzapixel) {
printf ("#define count_width %d\n#define count_height 16\n",
$dimensioneL*8);
}
else {
printf ("#define count_width %d\n#define count_height 10\n",
$dimensioneL*8);
}
printf STDOUT "static char count_bits[] = {\n";
for($i = 0; $i < ($#bytes + 1); $i++) {
print("0x$bytes[$i]");
if ($i != $#bytes) {
print(",");
if (($i+1) % 7 == 0) {
print("\n");
}
}
}
print("};\n");
}


sub creoBmp {
$conto = $sommaRilevati;
@bytes = ();
$dimensioneL = length($conto) > $lunghezza ? length($conto) : $lunghezza;
$contoFormattato = sprintf("%0${len}d",$conto);
if ($altezzapixel) {
for ($i = 0; $i < $dimensioneL*3; $i++ ) {
if ($contrastoNeroBianco) {
push(@bytes,"ff");
}
else {
push(@bytes,"00");
}
}
}
for ($y=0; $y < 10; $y++) {
for ($x=0; $x < $dimensioneL; $x++) {
$cifre = substr($contoFormattato,$x,1);
if ($contrastoNeroBianco) {
$byte = substr(@biancoSuNero[$cifre],$y*3,2);
}
else {
$byte = substr(@neroSubianco[$cifre],$y*3,2);
}
push(@bytes,$byte);
}
}
if ($altezzapixel) {
for ($i = 0; $i < $dimensioneL*3; $i++ ) {
if ($contrastoNeroBianco) {
push(@bytes,"ff");
}
else {
push(@bytes,"00");
}
}
}
}

sub azioneFinale {

@biancoSuNero = ("c3 99 99 99 99 99 99 99 99 c3", # 0
"cf c7 cf cf cf cf cf cf cf c7", # 1
"c3 99 9f 9f cf e7 f3 f9 f9 81", # 2
"c3 99 9f 9f c7 9f 9f 9f 99 c3", # 3
"cf cf c7 c7 cb cb cd 81 cf 87", # 4
"81 f9 f9 f9 c1 9f 9f 9f 99 c3", # 5
"c7 f3 f9 f9 c1 99 99 99 99 c3", # 6
"81 99 9f 9f cf cf e7 e7 f3 f3", # 7
"c3 99 99 99 c3 99 99 99 99 c3", # 8
"c3 99 99 99 99 83 9f 9f cf e3"); # 9

@neroSubianco = ("3c 66 66 66 66 66 66 66 66 3c", # 0
"30 38 30 30 30 30 30 30 30 30", # 1
"3c 66 60 60 30 18 0c 06 06 7e", # 2
"3c 66 60 60 38 60 60 60 66 3c", # 3
"30 30 38 38 34 34 32 7e 30 78", # 4
"7e 06 06 06 3e 60 60 60 66 3c", # 5
"38 0c 06 06 3e 66 66 66 66 3c", # 6
"7e 66 60 60 30 30 18 18 0c 0c", # 7
"3c 66 66 66 3c 66 66 66 66 3c", # 8
"3c 66 66 66 66 7c 60 60 30 1c"); # 9
}
sub aumentoConteggio {
&aumentoLettura;
}


sub aumentoLettura {
if (-e $percorsoCgi) {
open(COUNT,"$percorsoCgi") || die("Non apro $percorsoCgi: $!\n");
}
$sommaRilevati = <COUNT>;

close(COUNT);

$sommaRilevati++;
open(COUNT,">$percorsoCgi") || die "$0: can\'t open $percorsoCgi: $!\n";
print (COUNT "$sommaRilevati\n");
close(COUNT);


}5

PaoloNA
16-01-2007, 19:42
No answer????

Habanero
16-01-2007, 21:34
per il perl ci sarebbe un forum apposito... anche se decisamente poco frequentato.

PaoloNA
17-01-2007, 09:27
Grazie per lo spostamento... speriamo in qualche anima buona (anche se credo che il problema vada oltre il linguaggio di programmazione utilizzato)

PaoloNA
19-02-2007, 23:47
??????????????????

PaoloNA
27-02-2007, 22:26
Nessuno può svelarmi l'arcano?

Loading