PHP用GD画图的怪问题。

nbabn 2004-08-03 08:33:43
Apache2.0.47(win32)+PHP5.0
代码如下:
PHP代码
d.php
<?php
class Pic
{
var $iamge;

function Pic()
{
header ("Content-type: image/png");
$this->image = imagecreatetruecolor(200,500);
$bgcolor = imagecolorallocate($this->image,255,255,255);
imagefill($this->image,0,0,$bgcolor);
imagettftext($this->image,18,0,12,18,0,"simsun.ttc",$_POST["T1"]);
imagepng($this->image);
}

}
$tmp = new Pic();
?>
HTML文件s.html
<html>
<head>
<title>输入</title>
</head>
<body>
<form method="POST" action="d.php">
输入 <input type="text" name="T1" size="20"><br>
<input type="submit" value="提交" name="B1">
<input type="reset" value="全部重写" name="B2">
</form>
</body>
</html>
从s.html提交过去的字符能画出来,浏览正常,但是在用IE打印预览的时候怪事来了,一片空白,为什么浏览能看见字符,打印预览就看不见了?
...全文
142 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2004-08-04
  • 打赏
  • 举报
回复
这里无法贴图片,不然贴个截图给你看!
确实打印预览正常(ie5.5)
Mistruster 2004-08-04
  • 打赏
  • 举报
回复
_POST变量换成一个常量试试
nbabn 2004-08-04
  • 打赏
  • 举报
回复
不会吧,我在不同的电脑上试了的。WIN2000+IE6,XP+IE6都试过。浏览正常,但是在IE的打印预览里看不见。
xuzuning 2004-08-04
  • 打赏
  • 举报
回复
没有发现你说的现象
nbabn 2004-08-04
  • 打赏
  • 举报
回复
哦,原来如此,谢谢xuzuning(唠叨)兄高见。

向各位回复的高人致敬。
xuzuning 2004-08-04
  • 打赏
  • 举报
回复
呵呵!是我疏忽了。
我测试时对$_POST["T1"]赋值了

问题是这样的:
浏览器的打印预览(包括打印)会按浏览器的地址栏地址重新访问服务器,而不是从缓冲区中打印。
当再次访问这个url时,注意,这不是提交所以没有了$_POST["T1"],因此只能看到空白的图片了。你设置的图片背景是白色

nbabn 2004-08-04
  • 打赏
  • 举报
回复
是呀,问题大概是如果产生图形的PHP文件不接受$_POST变量或接受而不使用$_POST变量,那么打印预览就没问题了。如果使用到了$_POST变量并且输出到图形上,打印预览就看不见了,所以fzjw(清风) 说的那个验证码图片打印预览时显示正常,我估计是由随机数来产生再输出的,没有用到$_POST变量,或都没有直接使用$_POST变量,所以打印预览显示正常。
真是怪问题呀,哪位高人有好办法能解决此问题。
fzjw 2004-08-04
  • 打赏
  • 举报
回复
我在Windows Server 2003用IE6测试,除了中文不能正常显示,其他显示正常,但是打印预览没有任何内容,把$_POST换成常量,还是不能在打印预览中看到。

我自己的一个验证码图片页面,在打印预览时正常显示,估计就是代码的问题,和IE版本没有关系
nbabn 2004-08-04
  • 打赏
  • 举报
回复
IE5我没有试过,IE的不同版本会有不同的表现?
另外:_POST变量换成一个常量试试
如果不是接受一个$_POST变量,其他的变量在打印预览里又正常了,$_GET变量显示的也正常,真是怪事。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧