Ciao a tutti! non sono esperto di cgi/perl. Ho provato a scaricare un cgi che mi dovrà servire per fare il conteggio dei click, da far girare su macchine windows. Richiamo il cgi da browser e la pagina che mi viene visualizzata è quella sotto. In pratica pari pari mi viene ripetuta...quindi non viene elaborata sul server!?!?!?!?!
qualcuno sa dirmi se è questo il in cui deve lavorare! grazie
#!/usr/local/bin/perl
#-----------------------
# ClickCount.cgi
# Ver. 1.2.1
# 2000-11-12
# ----------------------
# Gustav Evertsson
# www.guzzzt.com
# me@guzzzt.com
#-----------------------
$dbfile = "./clickcount.db";
&parse_query;
if($ENV{'QUERY_STRING'} eq '') {
print "Content-type: text/html\n\n";
#Print the top of the admin page
print qq|
<html><head><title>GuzZzt ClickCount: Admin</title></head>
<body bgcolor="#FFFFFF" text="#000000">
<p align="center"><font face="Tahoma" size="3">GuzZzt ClickCount</font>
<font face="Arial,helvetica" size="2">
<center><table border="0" height="74">
<tr>
<td bgcolor="#C0C0C0"><font face="Tahoma" size="2">URL</font></td>
<td bgcolor="#C0C0C0"><font face="Tahoma" size="2">Clicks</font></td>
</tr>
|;
# write all urls
open(DATA, "$dbfile");
flock(DATA, 2);
@db = <DATA>;
@db = sort {$b <=> $a} @db;
close(DATA);
foreach (@db) {
($clicks, $url) = split /\|/;
$totclicks = $totclicks+$clicks;
print qq|
<tr>
<td><font face="Tahoma" size="2">$url</font></td>
<td><font face="Tahoma" size="2">$clicks</font></td>
</tr>
|;
}
#totalt clicks
print qq|
<tr>
<td align="right"><font face="Tahoma" size="2">Total:</font></td>
<td><font face="Tahoma" size="2">$totclicks</font></td>
</tr>
|;
#Write the bottom of the page
print qq|
</table>
</center>
<p align="right"><font face="Tahoma" size="1">Powered by GuzZzt ClickCount V. 1.2.1
Copyright 1999 Gustav Evertsson
From GuzZzt.com</font></p>
</body></html>
|;
}
else{
if($query{'action'} eq 'jump') {
open(DATA, "$dbfile");
flock(DATA, 2);
@db = <DATA>;
close(DATA);
foreach (@db) {
($click, $url) = split /\|/;
if($url eq $query{'URL'}){
$newclick = $click+1;
$dummy .= "$newclick|$url|\n";
$find = 'true';
}
else {
$dummy .= "$click|$url|\n";
}
}
if($find ne 'true') {
$dummy .= "1|$query{'URL'}|";
}
open(DB, "+>$dbfile");
flock(DATA, 2);
print DB $dummy;
close(DB);
print "Location: $query{'URL'} \n\n";
}
else{
open(DATA, "$dbfile");
flock(DATA, 2);
@db = <DATA>;
close(DATA);
foreach (@db) {
($click, $url) = split /\|/;
if($url eq $query{'URL'}){
$viewclick = $click;
}
}
if($viewclick eq '') {
$viewclick = 0;
}
print "Content-type: text/html\n\n";
print "$viewclick";
}
}
sub parse_query {
@pairs = split(/&/, $ENV{'QUERY_STRING'});
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ s/!/=/g; #change ! to = if double querystrings change all = to ! in the second url.
$value =~ s/%/?/g; #change % to ? if double querystrings change all ? to % in the second url.
$value =~ s/£/&/g; #change £ to & if double querystrings change all & to £ in the second url.
$query{$name} = $value;
}
}