PHP验证码图片 生成不成功

发布于 2022-09-05 09:57:36 字数 2147 浏览 20 评论 0

    //验证码
   public function verifAction($num=3, $interference=true){
    $image = imagecreate(100, 30); // 创建画布
    $bgcolor = imagecolorallocate($image, 255, 255, 255);//画布背景颜色
    imagefill($image,0,0,$bgcolor);//填充背景 输出$num位验证码

    $capatch='';
    for($i=0;$i<$num;$i++){    
        $fontsize=14;//字体大小    
        $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));//字体颜色    
        $date='QWERTYUPASDGHJKZXCVBNMqwertyupasdfghjkzxcvbnm'; 
        $fontcontent=substr($date,rand(0,strlen($date)-1),1);
        $capatch.=$fontcontent; 
        $x=($i*100/$num)+rand(5,10);
        $y=rand(5,10);    //生成验证码

        $_SESSION['capatch']=strtolower($capatch);
        file_put_contents('a.txt', $_SESSION['capatch']);
        imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
    }
    //干扰点
    if($interference == true){
        for($i=0;$i<100;$i++){    
            $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));    
            imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);}//干扰线
        for($i=0;$i<2;$i++){    
           $linecolor=imagecolorallocate($image,rand(100,200),rand(100,200),rand(100,200));    
           imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
        }
    }
    $_SESSION['authcode']=$capatch;
    header('content-type:image/png'); 
    imagepng($image); // 输出图片
    imagedestroy($image);//销毁图片  
    }
    
    
    

图片描述

这段代码在框架之外生成验证码是正常的,但是一旦放到代码里面就不正常了。我用url直达这个函数,得到的永远是一片没有验证码的黑色背景?请教各位大神,问题可能出在哪了?
我用的是zend-framework框架.

-------------------分割线---------

public function verifAction(){
header("Content-type:image/png");
$a = imagecreate(100,100);
imagecolorallocate($a,255,0,255);
imagepng($a);
imagedestroy($a);
exit();
}

我刚刚再试发现,只创建一块画面,画布也输不出来。这是哪里的问题?
换了个浏览器是这样的。

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浮世清欢 2022-09-12 09:57:36

注意代码空格,header 头部信息调试。生成图片过程都好好检查

温柔戏命师 2022-09-12 09:57:36

框架里面和你直接访问流程不一样,一般来说是框架里面调用完还会执行什么 输出什么的 你可以调试一下!

心如狂蝶 2022-09-12 09:57:36

框架里a.txt有没打印出什么东西,如果没有,或许是跟session文件夹权限有关(如果是以文件形式存储的话),将框架里存储session的文件夹权限变为777试试。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文