我有一个完美的验证码,但我真的不知道为什么它显示有趣。 任何人都可以帮我弄清楚这可能是什么原因造成的?这是代码:
<?php
session_start();
$text = rand(10000,99999);
$_SESSION["vercode"] = $text;
$height = 25;
$width = 65;
$image_p = imagecreate($width, $height);
$black = imagecolorallocate($image_p, 0, 0, 0);
$white = imagecolorallocate($image_p, 255, 255, 255);
$font_size = 14;
imagestring($image_p, $font_size, 5, 5, $text, $white);
imagejpeg($image_p, null, 80);
?>
这就是显示的内容:
kX'OýÓx£c取代; ñ=¨μÖ/ b {ct÷¯½¬6É-Ã'eeHäcsdòyäæcÆ^“Ö| 7¥è|ss¤i™û%³'¶&gt; 02q-Ú2q; A!p +Ÿ¢€ :¿OX&GT;'þÂþÈþÓÿDûöo™öx¾Ñö]Û¼O>ågø7mÇËŒqF‡NAU•Ÿ|j〜M½·öWkx¤šÓÎ]²ù²™U:?!IEA“O“\¥QEQEÿÙ
答案 0 :(得分:7)
你错过了标题。在session_start()
之后添加以下内容:
header('Content-Type: image/jpeg');
输出类似于:
答案 1 :(得分:2)
当您创建这样的图片时,您需要告诉浏览器您想要显示的内容类型。因此原因:
header("Content-type: image/jpeg");
是必需的。如果这让您感到困惑,请阅读MIME上的Wiki文章。您还会发现,只要您生成其他文件类型,您也需要指定内容类型(例如:使用PHP动态生成的PDF文件需要header('Content-type: application/pdf');
)