PHP验证码无法显示

    写了一个php验证码,但是死活显示不出来验证码,要么报错,要么显示不出内容,多方查找资料终于解决。

    一、没开启gd库

    一开始运行的时候报错:Call to undefined function imagecreatetruecolor() ,因为这个函数是gd库里面的。解决办法:在php.ini找到“;extension=php_gd2.dll”,去掉extension前面的“;”,保存重启apache服务器即可。

    二、没考虑header前面的输出、空格或者换行

    没考虑header前面的输出、空格或者换行就会报错:Cannot modify header information - headers already sent by (output started at。。。解决办法:在header前面加入ob_clean();把header头前面的所以输出内容清空。

   

 

以下是代码:

    

<?php
session_start();

for($i = 0; $i < 4; $i ++) {
$rand .= dechex(rand(1, 15));
}
$_SESSION[vcode] = $rand;

$im = imagecreatetruecolor(100, 30);

//设置颜色
$bg = imagecolorallocate($im, 0, 0, 0);//第一次用调色板的时候,是设置背景颜色
$te = imagecolorallocate($im, 255, 255, 255);

//把字符串写在图像左上角
imagestring($im, rand(1, 6), rand(3, 70), rand(0, 16), $rand, $te);

//输出图像
ob_clean(); //清除输出
header("Content-type:image/jpeg");
imagejpeg($im);
imagedestroy($im);
?>

 

转载于:https://www.cnblogs.com/GrowthRookie/p/3452580.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值