[讨论]LBCGI和GD的冲突?

| 11 Comments | 0 TrackBacks | WebBlog Articles

最简单的GD验证码程序。。


#!/usr/bin/perl
#use LBCGI;
use CGI qw(:all);
$verify= "1234";
require GD;
my $font = GD::gdGiantFont();
my $dx= 2 + $font->width * length $verify ;
my $dy = 2 + $font->height;
my $image = GD::Image->new($dx,$dy);
my $background = $image->colorAllocate(0,0,0);
my $txt = $image->colorAllocate(255,255,255);
#$image->transparent($background);
$image->string($font, 1, 1, $verify, $txt);
# print header(-charset=>gb2312, -type=>'image/png'), $image->png;
print header('image/png'), $image->png;
exit 0;

用的是 CGI模块,一切正常显示。
换成LBCGI模块,就图片无法显示。。无奈。。用了$image->gif;Win32测试环境LBCGI模块显示正常。
上传到FreeBSD空间,有没有办法显示图片?

研究LBCGI中header函数,似乎没有和CGI的header函数有区别的地方??

引用通告|TrackBacks (0)

本日志的TrackBack URL: http://easun.org/cgi-bin/mtos/tb_mt_41.pl/4.

本文相关评论|Comments (11)

use LBCGI qw(header);
這能嗎?

下面引用由Anthony在 2004/10/29 00:46am 发表的内容:
use LBCGI qw(header);
這能嗎?

还是不行的。。其实是输出了。。就是浏览器告诉图片非法不能显示。。 error.log没有错误,程序返回的数值也是正常的。

那麼 你就看看所輸出的http header 是什麼吧..

下面引用由Anthony在 2004/10/29 00:53am 发表的内容:
那麼 你就看看所輸出的http header 是什麼吧..

是 Content-Type: text/html; charset=GB2312

ft,http header就不对。。但是。。为什么?
明明 -type=>'image/gif' 了呀



改成 print header(-type=>'image/png'), $image->png;  后。
测试http header 是 Content-Type: image/png; charset=GB2312

但是图象依然不显示。郁闷:(

print header('image/png');
binmode (STDOUT);
print $image->png;
試試
估計是這問題

下面引用由Anthony在 2004/10/29 01:11am 发表的内容:
print header('image/png');
binmode (STDOUT);
print $image->png;
試試
...

还是不行。。
发现。在CGI模块下面。。。http header 没有 charset=GB2312。。
可能是这个原因?
下面引用由路杨在 2004/10/29 01:17am 发表的内容:
还是不行。。
发现。在CGI模块下面。。。http header 没有 charset=GB2312。。
可能是这个原因?

應該沒關係...
試試$LBCGI::HEADERS_ONCE = 1;
吧..估計不會是這問題..



下面引用由Anthony在 2004/10/29 01:19am 发表的内容:
應該沒關係...
試試$LBCGIHEADERS_ONCE = 1;
吧..估計不會是這問題..

没有用:(

睡觉了。明天再说,实在不行,我就不用LBCGI了。全部用CGI。汗 :em06:

没有看明白LBCGI模块怎么写的么?


#!/usr/bin/perl
use LBCGI;
$verify= "1234";
require GD;
my $font = GD::gdGiantFont();
my $dx= 2 + $font->width * length $verify ;
my $dy = 2 + $font->height;
my $image = GD::Image->new($dx,$dy);
my $background = $image->colorAllocate(0,0,0);
my $txt = $image->colorAllocate(255,255,255);
$image->string($font, 1, 1, $verify, $txt);
print header(-charset=>'', -type=>'image/gif'), $image->gif;
exit 0;


如果你的GD不支持gif,只支持png的话

print header(-charset=>'', -type=>'image/gif'), $image->gif;
修改为
print header(-charset=>'', -type=>'image/png'), $image->png;
就ok了

我晕下。。果真出现问题在了 -charset=>'' 上:(

发表该文评论|Leave a comment

最近发表|Recent Entries

[MT Tips]如何让某个日志在Blog首页固顶?

貌似最简单的办法就是修改日期到一个很遥远的日期,比如 AnySQL 那样:) 但是带来的问题的很多,比如导致Feed阅读器犯糊涂或者影响搜索引擎的收录等等,更糟糕的是对于 日志来说,最主要的就是发布日期。也许大家都已经发现了,我的主页模仿 MT Forum 搞了一个固顶日志(也是为了风格统一)出来,这个固顶日志是后台通过自己设置实现的。是怎么设置的。答案是利用 <mt:Entries> 的tags 功能。 具体概念代码如下:<mt:Entries tag="@top" sort_by="authored_on" sort_order="descend" limit="1" blog_ids="1,5"> dosthing.....</mt:Entries> 这样我们只要要在固定的主题 加上…

北京 Perl Workshop 2008 网站开张 - 接受大会注册,演讲报名

网站开张了, 地址是 http://conference.perlchina.org/bjpw2008/ 由 PerlChina 和 Postgresql China 合办,2008 年 11 月 8 号举行的 Beijing Perl Workshop 是一个免费的 Perl 交流会,向所有对…

好玩的 MT Forum 的按作者归档

Perl Forum 用 MT4 的 MT Forum 的功能搭建起来了好几天了,一直没有发现什么意外,今天突然发现 按作者按月归档 貌似找完了整个发布完的 Perl Forum 也没有找到 link ,查看作者个人信息貌似也没有 link ? 真是好玩的 归档方式。从后台看,给每个用户(作者)都建立了按月的归档页面,估计是为了便于各用户归档自己的文章吧? 后台抓图如下:…