在php等等程序开发的系统中很多都会用到验证码,这里给大家分享一个php验证码生成和使用的方法哈,属本博客原创绝非网上转载,也绝对可以用的哈。此验证码是四位的由数字和小写字母组成。采用session认证的哈

<?php
session_start();//启动session
$Arr="0123456789abcdefghijklmnopqrstuvwxyz";
for($i=1; $i<=4;$i++)
{
    $rand.=$Arr[rand(0,35)];//累加四个随机数 这里的取值范围是 0-9A-F
}
                         
//建一个图片
$im=imagecreatetruecolor(60,22);//宽度,高度
//设置验证码背景色
$bg=imagecolorallocate($im,246,246,246);//第一次为背景色
imagefill($im,0,0,$bg);//使用背景色
$tc=imagecolorallocate($im,2,2,225);//第二次为前景色
                         
//画字符串
imagestring($im,6,rand(3,20),rand(1,4),$rand,$tc);
            //图片,随机字体(系统默认的六种),x坐标,y坐标,验证字符,前景色
                                 
//画线条
for($j=0;$j<3;$j++)
{
    $tg=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imageline($im,rand(2,60),rand(2,20),rand(8,58),rand(2,20),$tg);
}
                         
$_SESSION["qige_login_yzm"]=$rand;//存储验证码
                         
//输出图片
header("Content-type:image/jpeg");
imagejpeg($im);
?>

将这部分代码保存为yzm.php , 然后在需要展示验证码的地方假如一句代码

<img src="yzm.php"  width="60" title="点击刷新验证码" id="yzm" onclick="RefreshImage('yzm');" style="cursor:pointer;" height="22"/>

直接将src地址赋值为php文件地址,宽度和高度参考yzm.php代码中的图片宽度和高度,这里给了一个id和onclick事件,这样就能通过点击验证码图片刷新验证码了。具体刷新方法如下

<script language="javascript">
function RefreshImage(id)
{
    document.getElementById(id).src ='yzm.php?'+Math.random(1);
}
</script>

最后讲讲怎么判断验证码是否输入正确,因为验证码在生成的时候已经将验证码写入了session,所以当用户通过表单(比如用post方法)传递过来验证码的时候直接用 $_POST["验证码输入框的name属性值"]和$_SESSION["qige_login_yzm"];进行比较看是否一样,相同则正确,否则错误,呵呵  这当中的过程大家可以再晚上下。

验证码效果展示

php验证码