100分急征CGI 的计数器源码!(100分)

  • 主题发起人 主题发起人 wtiebo
  • 开始时间 开始时间
W

wtiebo

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个ASP的, 可好像UNIX不支持, 对CGI一窍不通,
奉上100大分! 感谢各位!
 
如果用Delphi的CGI (可能有错误,没有调试)
================
从delphi菜单”文件”下选择"new",然后选择"webserver application",
给WebModule1添加一个Actions:WebActionItem1,在WebActionItem1的
OnAction事件里写如下代码:
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest;
Response: TWebResponse;
var Handled: Boolean);
var
bmp: Tbitmap;
S: TMemoryStream;
f:textfile;
count:string
begin
//读取计数器文件
assignfile(f,'计数器文件名');
reset(f);
readln(f,count);
closefile(f);
//数字加1
count:=inttostr(strtoint(count)+1);
//加1后的数字写回文件
assignfile(f,'计数器文件名');
rewrite(f);
writeln(count);
closefile(f);
//建一个bitmap
bmp := Tbitmap.Create;
try
bmp.Width:=;
//设置宽度
bmp.height:=;
//设置高度
bmp.Canvas.Font:='';
//设置字体
bmp.Canvas.TextOut(0,0,count);
//把数字画到bitmap上
S := TMemoryStream.Create;
//建一个流
try
bmp.SaveToStream(S);
//bitmap保存到流里面
S.Position := 0;
Response.ContentType := 'image/bitmap';
//告诉浏览器返回一个图片
Response.ContentStream := S;
Response.SendResponse;
finally
S.Free;
end;
finally
bmp.Free;
end;
end;

调用时这样写: <img src="cgi文件名.exe" width=xxx height=xxx >
 
你要什么做的?
delphi的话CGIEXPERT有例子.
perl的话我有很多, 要?来MAIL.
 
去ftp://ftp.cs.pku.edu.cn/pub/NetworkTools/CGI/WebPageCounter/
下载一个现成的,nt和unix下的都有!
 
http://yishan.wnok.net/
要多少有多少
 
cAkk:
Unix下能用么? 还有, 这一行编译通不过!
bmp := Tbitmap.Create;

cytown:
Perl的也行! 能有C的更好! wtiebo@263.net 谢谢!
jet and CJ:
谢谢两位, 可我这连不上!
 
bmp:=Tbitmap.create(self);
 
C语言的我没有,不过我有个主意, 其实counter的关键就是生成gif(jpg)图像,
到网上下一个perl的GD库的源代码,看看它怎么处理gif文件就知道了.
不会不知道gd库吧?
 
很多的CGI,你自己找找看吧
<a href="http://www.eastart.com/cgi-eastart/free.cgi?script=cgi&amp;browse=30&amp;category=26">counter, graphical</a>
 
搜索一个叫 wwwcounter的东东,nt版和unix版的豆油,很好用,
估计大半个地球都在用他。
要得话,我发给你算了,要nt的还是unix的?
 
To cAkk:
不好意思, 不幸被你言中了: 我真的不知道GD库是什么! 能不能解释一
下? 对了, 那些图片我有了, 0-9的都有! 我只是要源程序!
To jet:
如果不是很大, 两个都要最好! (贪心了点! ^_*) 否则, 优先Unix的吧!
先谢谢了! 收到后给分!
我的地址<a href="mailto:wtiebo@263.net">wtiebo@263.net</a>
 
寄出了,分...分...口水直流的说。
 
cAkk的方法很好,只是隐藏了一个大bug,
assignfile(f,'计数器文件名');
rewrite(f);
writeln(count);
closefile(f);
其中writeln(count)应该是writeln(f,count);否则是没法保存的.
 
To jet:
不好意思! 我这太慢! 先等我收下来, OK?
To WWW:
  bmp := Tbitmap.Create(self);
  还是这一行编译通不过!还有,好像这个程序只能运行在Windows平台上,
是吧?
 
to wtiebo: 你uses graphics 了吗?
GD库是一个基于C语言的gif图形库接口,很多cgi的图形操作实际上
都是调用的gd库,比如perl,php等.
我写得例子是只能运行在win平台下.
to www: 谢谢提醒, 我是信手写的,只是告诉一个原理而已.
 
多人接受答案了。
 
后退
顶部