关于验证码,就是有字幕的图片!

造图片--> 写字 p_w_picpathstring()

<?php

/*验证码*/

/*1. 造画布*/

$p_w_picpath = p_w_picpathcreatetruecolor(50, 25);

/*不使用填充,默认底色黑色*/

/*2.造颜料,*/

$red = p_w_picpathcolorallocate($p_w_picpath, 255, 0,  0);

/*3. 写字 p_w_picpathstring 水平的画一行字符串

bool p_w_picpathstring ( resource $p_w_picpath , int  $font , int $x , int $y , string $s , int $col )

参数分别代表:画布资源,字体大小(1-5且是系统内置字体),字符串左上角坐标,字符,颜色

*/

p_w_picpathstring($p_w_picpath, 5, 0,0 , 'PHP',  $red);

/*/*4. 保存  p_w_picpathpng p_w_picpathjpeg  p_w_picpathgif*/

header('content-type:p_w_picpath/jpeg');

p_w_picpathjpeg($p_w_picpath);

/*5. 销毁画布,释放资源*/

p_w_picpathdestroy($p_w_picpath);

?>

随机数

<?php

/*验证码*/

/*1. 造画布*/

$p_w_picpath = p_w_picpathcreatetruecolor(50, 25);

/*不使用填充,默认底色黑色*/

/*2.造颜料,*/

$red = p_w_picpathcolorallocate($p_w_picpath, 255, 0,  0);

/*3. 写字 p_w_picpathstring 水平的画一行字符串

bool p_w_picpathstring ( resource $p_w_picpath , int  $font , int $x , int $y , string $s , int $col )

参数分别代表:画布资源,字体大小(1-5且是系统内置字体),字符串左上角坐标,字符,颜色

*/

$str =  'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ23456789';

$str= substr(str_shuffle($str), 0,4);

p_w_picpathstring($p_w_picpath, 5, 5,5 , $str, $red);

/*/*4. 保存  p_w_picpathpng p_w_picpathjpeg  p_w_picpathgif*/

header('content-type:p_w_picpath/jpeg');

p_w_picpathjpeg($p_w_picpath);

/*5. 销毁画布,释放资源*/

p_w_picpathdestroy($p_w_picpath);

?>

做点击更换效果的验证码

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

     <meta  http-equiv="Content-Type"  content="text/html;charset=UTF-8">

     <title>Document</title>

<script type="text/javascript">

     function chv(){

          var vcode =  document.getElementsByTagName('img')[0];

          vcode.src = '04.php?_s'+ Math.random();

     }

     </script>

</head>

<body>

     <input  type="text" /> <img src="04.php"  οnclick='chv()'>

</body>

</html>

添加干扰线

<?php

/*验证码*/

/*1. 造画布*/

$p_w_picpath = p_w_picpathcreatetruecolor(50, 25);

/*不使用填充,默认底色黑色*/

/*2.造颜料,*/

$red = p_w_picpathcolorallocate($p_w_picpath, 255, 0,  0);

$gray = p_w_picpathcolorallocate($p_w_picpath, 220, 220,  220);

/*随机颜色*/

$randcolor=p_w_picpathcolorallocate($p_w_picpath,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));

$linecolor1=p_w_picpathcolorallocate($p_w_picpath,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));

$linecolor2=p_w_picpathcolorallocate($p_w_picpath,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));

$linecolor3=p_w_picpathcolorallocate($p_w_picpath,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));

p_w_picpathfill($p_w_picpath, 0, 0, $gray);

/*3. 写字 p_w_picpathstring 水平的画一行字符串

bool p_w_picpathstring ( resource $p_w_picpath , int  $font , int $x , int $y , string $s , int $col )

参数分别代表:画布资源,字体大小(1-5且是系统内置字体),字符串左上角坐标,字符,颜色

*/

$str = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ23456789';

$str= substr(str_shuffle($str), 0,4);

p_w_picpathstring($p_w_picpath, 5, 5,5 , $str,  $randcolor);

p_w_picpathline($p_w_picpath, 0, mt_rand(0,25), 50,  mt_rand(0,25), $linecolor1);

p_w_picpathline($p_w_picpath, 0, mt_rand(0,25), 50,  mt_rand(0,25), $linecolor2);

p_w_picpathline($p_w_picpath, 0, mt_rand(0,25), 50,  mt_rand(0,25), $linecolor3);

/*/*4. 保存  p_w_picpathpng p_w_picpathjpeg  p_w_picpathgif*/

header('content-type:p_w_picpath/jpeg');

p_w_picpathjpeg($p_w_picpath);

/*5. 销毁画布,释放资源*/

p_w_picpathdestroy($p_w_picpath);

?>