验证码以有趣的方式显示

时间:2013-11-12 13:24:51

标签: php captcha

我有一个完美的验证码,但我真的不知道为什么它显示有趣。 任何人都可以帮我弄清楚这可能是什么原因造成的?这是代码:

<?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ÿÙ

2 个答案:

答案 0 :(得分:7)

你错过了标题。在session_start()之后添加以下内容:

header('Content-Type: image/jpeg');

输出类似于:

enter image description here

答案 1 :(得分:2)

当您创建这样的图片时,您需要告诉浏览器您想要显示的内容类型。因此原因:

header("Content-type: image/jpeg");

是必需的。如果这让您感到困惑,请阅读MIME上的Wiki文章。您还会发现,只要您生成其他文件类型,您也需要指定内容类型(例如:使用PHP动态生成的PDF文件需要header('Content-type: application/pdf');