php验证码制作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php验证码制作相关的知识,希望对你有一定的参考价值。

目标: 使用php生成验证码

成品:

    技术分享

逻辑代码: authcode.php

<?php
header("Content-type:image/png");
session_start();
//$str用于存放验证码
$str="";
//$charset中剔除了0,o,1,l等易混淆字符
$cs="abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ2345678923456789";
$img=imagecreate($width=100,$height=26);
//图片背景色使用浅色调
$img_bg=imagecolorallocate($img,rand(186,255), rand(186,255), rand(186,255));
for($i=0;$i<4;++$i){
    //文字颜色使用深色调
    $txt_color=imagecolorallocate($img,rand(0,86),rand(0,86),rand(0,86));
    //从$charset中随机出来一个字符
    $tmp=substr($cs,rand(0,strlen($cs)-1),1);
    //进行偏移和显示
    imagestring($img,5,$i*24+rand(6,15),rand(2,12),$tmp,$txt_color);
    $str.=$tmp;
}
//将验证码值放入session中以备后用(验证用户输入的验证码)
$_SESSION["authcode"]=$str;
//添加背景线条
for($j=0;$j<5;++$j){
    $line_color=imagecolorallocate($img,rand(150,210), rand(150,210), rand(150,210));
    imageline($img, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $line_color);
}
//添加噪点
for($i=0;$i<250;++$i){
    $img_noisy=imagecolorallocate($img,rand(150,210), rand(150,210), rand(150,210));
    imagesetpixel($img,rand(0,$width),rand(0,$height),$img_noisy);
}
imagepng($img);
imagedestroy($img);


前端使用: register.html

<img src="authcode.php"/>

 

以上是关于php验证码制作的主要内容,如果未能解决你的问题,请参考以下文章

php验证码制作

php生成各种验证码

php制作验证码

php验证码的制作

PHP实现验证码制作

PHP实现验证码制作