php生成验证码

在慕课网上看到的,感觉还是挺简单的,都是一个套路,先生成一个底图,然后生成颜色,然后填充

<?php
    session_start();
    $image = imagecreatetruecolor(100,30);
    $bgcolor = imagecolorallocate($image,255,255,255);
    imagefill($image,0,0,$bgcolor);

    $captch_code = '';
    for ($i = 0;$i<4;$i++) {
        $fontsize = 6;
        $fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
        $data = 'qwertyuiopasdfghjklzxcvbnm0123456789';
        $fontcontent = substr($data,rand(0,strlen($data)),1);
        $captch_code .= $fontcontent;
        $x = ($i*100/4)+rand(5,10);
        $y = rand(5,10);

        imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
    }
    $_SESSION['authcode'] = $captch_code;

    //增加点干扰
    for ($i = 0;$i<200;$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<3;$i++) {
        $linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
        imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
    }
    header('content-type:image/png');
    imagepng($image);

    imagedestroy($image);
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值