本文使用PHP一些可用的特性实现了验证码功能。该教程非常的简单,使用可以改变的字体生成了验证码图片,正如我们所了解的,验证码是用于避免垃圾评论或者自动提交的。
本验证码程序的资源:
captcha_code_file.php
代码:
<?php session_start(); //设置: $image_width
$image_height
$characters_on_image
$font
'./monofont.ttf' ; //以下字符将用于验证码中的字符 //为了避免混淆去掉了数字1和字母i $possible_letters
'23456789bcdfghjkmnpqrstvwxyz' ; $random_dots
$random_lines
$captcha_text_color = "0x142864" ; $captcha_noice_color
"0x142864" ; $code
'' ; $i
while
$i
$characters_on_image ) $code
substr ( $possible_letters , strlen ( $possible_letters )-1), $i ++; } $font_size
$image_height
$image
$image_width , $image_height ); /* $background_color
$image , $arr_text_color
$captcha_text_color ); $text_color
$image , $arr_text_color [ 'red' ], $arr_text_color [ 'green' ], $arr_text_color [ 'blue' ]); $arr_noice_color
$captcha_noice_color ); $image_noise_color
$image , $arr_noice_color [ 'red' ], $arr_noice_color [ 'green' ], $arr_noice_color [ 'blue' ]); /* for ( $i =0; $i < $random_dots ; $i ++ imagefilledellipse( $image , $image_width ), mt_rand(0, $image_height ), $image_noise_color ); } /* for ( $i =0; $i < $random_lines ; $i ++ imageline( $image , $image_width ), $image_height ), mt_rand(0, $image_width ), $image_height ), $image_noise_color ); } /* $textbox
$font_size , $font , $code ); $x
$image_width
$textbox [4])/2; $y
$image_height
$textbox [5])/2; imagettftext( $image , $font_size , $x , $y , $text_color , $font
$code ); /* header( 'Content-Type: ); // imagejpeg( $image ); //显示图片 imagedestroy( $image ); //销毁图片实例 $_SESSION [ '6_letters_code' ] $code ; function
$hexstr ) $int
$hexstr ); return
( "red"
$int
"green"
$int
"blue"
$int ); } ?> |
验证验证码正确或错误的方法
验证码图片上的文字被存放到了SESSION 变量里面,验证的时候,我们需要将SESSION 里面的值和用户输入的值进行比较即可。
$_SESSION[6_letters_code] – 存放着验证码的文字值
$_POST[6_letters_code] – 这是用户输入的验证码的内容
index.php代码
包含了HTML, CSS, Javascript and PHP代码:
<?php if (isset( $_REQUEST [ 'Submit' ])){ // if ( empty ( $_SESSION [ '6_letters_code' ] strcasecmp ( $_SESSION [ '6_letters_code' ], $_POST [ '6_letters_code' ]) { $msg = "验证失败!" ; } else { //验证码验证正确,这里放验证成功后的代码 } } ?> <style "text/css" > .table font-family:Arial, font-size:12px; color:#333; background-color:#E4E4E4; } .table background-color:#F8F8F8; } </style> <form ""
"post"
"form1"
"form1"
<table "400"
"0"
"center"
"5"
"1"
= "table" > <?php if (isset( $msg )){?> <tr> <td "2"
"center"
"top" ><?php echo
;?></td> </tr> <?php <tr> <td "right"
"top" > <td><img "captcha_code_file.php?rand=<?php
'captchaimg' ><br> <label for = 'message' >请输入上面的验证码 <br> <input "6_letters_code"
"6_letters_code"
"text" > <br> 无法读图片吗?点击 'javascript: >here</a> </p></td> </tr> <tr> <td> </td> <td><input "Submit"
"submit"
"return
"提交" ></td> </tr> </table> </form> <script 'text/javascript' > function
{ var
'captchaimg' ]; img.src "?" ))+ "?rand=" +Math.random()*1000; } </script> |