关于验证码,就是有字幕的图片!
造图片--> 写字 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); ?> |