|
主题: 一个关于下载次数计数器的问题?
|
 evan_5d
职务:普通成员
等级:1
金币:0.0
发贴:76
注册:2002/6/3 11:32:54
|
#12003/2/25 14:50:22
找了半天找到了一个cgi的计数器,我是用asp做的网页,cgi一窍不通的,里边的参数怎么改啊什么的都不懂的,上传到哪里也不知道,谁可以帮帮我吗? 下面分别是这个下载次数计数器的说明和源代码,谁帮我分析分析、讲解讲解、讨论讨论、学习学习、研究研究好吗?
|
 evan_5d
职务:普通成员
等级:1
金币:0.0
发贴:76
注册:2002/6/3 11:32:54
|
#22003/2/25 14:51:47
1.修改clickcount.cgi 将第一行#!/usr/bin/perl修改为"Server上Perl的目录",注意#和!不能去掉喔. 2.以ASCII型态上传cliclcount.cgi至Server. 3.设定权限,clickcount.cgi档 chmod 755. 4.在想要产生Clickcount效果的地方,以下面的设定方式设定. xxx.zipEEE次 AAA=>cliclcount.cgi的URL BBB=>click後要下载出的档案URL CCC=>要写入click次数数字的档案之绝对位置 DDD=>CCC中要写入click次数数字位置的MARK EEE=>预设次数 注意必需分为叁行,但是不要担心,Html下看起来像一行. 举例如下: abc.zip1次 5.执行测试.
|
 evan_5d
职务:普通成员
等级:1
金币:0.0
发贴:76
注册:2002/6/3 11:32:54
|
#32003/2/25 14:52:13
#!/usr/bin/perl ############################ @querys = split(/&/, $ENV{'QUERY_STRING'}); foreach $query (@querys) { ($name, $value) = split(/=/, $query); $FORM{$name} = $value; }
if ($FORM{'url'}) { $url = "$FORM{'url'}"; $url =~ s/\&x//g; $url =~ s/\+/ /g; $url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $url =~ s/~!/ ~!/g; $url =~ s/\%2F/\//g; &checkempty($url,"未指定url"); } else { &error("未指定url"); }
if ($FORM{'file'}) { $file = "$FORM{'file'}"; $file =~ s/\&x//g; $file =~ s/\+/ /g; $file =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $file =~ s/~!/ ~!/g; $file =~ s/\%2F/\//g; &checkempty($file,"未指定file"); } else { &error("未指定file"); }
if ($FORM{'mark'}) { $mark = "$FORM{'mark'}"; $mark =~ s/\&x//g; $mark =~ s/\+/ /g; $mark =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $mark =~ s/~!/ ~!/g; $mark =~ s/\%2F/\//g; &checkempty($mark,"未指定mark"); } else { &error("未指定mark"); }
print "Location: $url\n\n";
open(MAIN,"$file"); @main = ; close(MAIN);
$check=0; open(MAIN,">$file"); foreach (@main) { if ($_ =~ /(.*)/) { $clickcount=$1+1; $check=1; $_ =~ s/(.*)/$clickcount/g; } print MAIN "$_"; } close(MAIN);
if ($ckeck==0) { &error("无法发现mark"); } exit 0;
######## sub checkempty { $checkvalue = $_[0]; $checkerror = $_[1]; $checkvalue =~ s/ //g; $checkvalue =~ s/\n//g; $checkvalue =~ s/ //g; if ($checkvalue eq "") { &error($checkerror); } }
######## sub error { print "Content-type: text/html\n\n"; print "错误\n"; print "\n"; print "\n"; print "错误:$_[0]\n"; print "\n"; exit 0; }
|
 evan_5d
职务:普通成员
等级:1
金币:0.0
发贴:76
注册:2002/6/3 11:32:54
|
#42003/2/25 14:55:56
我希望统计这个页面几个软件被下载的次数: 页面网址:http://www.sunshinesoft.com.cn/1.asp 希望统计被下载的软件的连接:http://www.zjz13521.com/sunshinesoft/install_win98.exe www.zjz13521.com/sunshinesoft/install_win2000.exewww.zjz13521.com/sunshinesoft/sp1.exe谢谢!
|
 evan_5d
职务:普通成员
等级:1
金币:0.0
发贴:76
注册:2002/6/3 11:32:54
|
#52003/2/26 16:37:48
没有人能够帮我的吗?
|
 沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
注册:2004/2/18 11:17:25
|
#62003/2/27 8:59:41
用ASP喽,先得到它的ID号,然后点击次数+1 id=request.querystring("id") sql="update table set hit="&hit+1&" where id="&id set rs=cn.execute response.redirect "下载页"
难人一个……
|
 我是小呆瓜
职务:普通成员
等级:3
金币:1.0
发贴:716
注册:2001/12/11 13:23:44
|
#72003/2/28 10:08:47
那如果我进入了下载页,但是没下载不就多加了一次了吗
|
 沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
注册:2004/2/18 11:17:25
|
#82003/2/28 11:27:37
所以你要得到你要下载文件的ID号,还要得到要下载的URL, 按照上面的方法进入下载页后,刷新后点击数是不会加一的。
难人一个……
|
 我是小呆瓜
职务:普通成员
等级:3
金币:1.0
发贴:716
注册:2001/12/11 13:23:44
|
#92003/2/28 14:43:10
如果更新的话一定要有对象啊,比如说文本框之类的,那我现在的话如何更新呢?
|