[讨论]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

[八卦]话说修路这件事

建国路貌似又在修。根本没有办法步行。这个让我想起来一个笑话:话说某A国人来北京,在东城区丢了一枚戒指,于是乎找警察,警察告诉他尽可能的帮他找。过了几天,此人发现整个东城的马路都挖开了,于是感叹曰:北京的警察真好。看来这个笑话的地点可以换在朝阳了?是不是某人的戒指又丢了?PS: 城市规划城市规划,年年挖年年修。。。生命不休,挖路不止…

[SiteLog]Blog升级到了 Movable Type Pro 4.25

Thisi is a SiteLog of Easun's WebBlog.今天终于升级到了 Movable Type Pro 4.25 ,貌似一切顺利,也没有发现什么特别大的改动?只是 Community Pack 变成了 1.62, Professional Pack 升级成了1.3 。其他的一切顺利,模版也没有修改,我甚至连重建前台HTML的事情都没有做。。。就这样吧,继续用这个风格,等有时间了再慢慢研究吧。如果非要说有什么修改的话,就是评论的登陆方式又丰富了很多,包括…

IE脚本错误,可以尝试以下办法

IE 脚本错误是个很麻烦的问题,一般定位都是 JS 引擎 和 VB 引擎出错。但是有时间反复注册 jscript.dll 和 vbscript.dll 也不能解决问题。具体表现 部分 js 解析正常,而部分就不行,尤其是基于 Web2.0的网站。不说别的,就连 ie7/ie8 本身第一次运行向导的"保存设置"也出错。其实研究下,貌似都出现在 XML 解释上? 重新注册…