本文章利用三个文件来简单的讲了一下关于php中怎么去应用中文验证码,中文因为是汉字可能出现乱码所以我们就定义了一个文件来专门处理,有需要的朋友可以参考下.
php中文汉字验证码程序代码如下:
<?php /* * 文件:chinesechar.php * 作用:汉字数据储存 */ $ChineseChar = array("人","出","来","友","学","孝","仁","义","礼","廉","忠","国","中","易","白","者","火 ","土","金","木","雷","风","龙","虎","天","地", "生","晕","菜","鸟","田","三","百","钱","福 ","爱","情","兽","虫","鱼","九","网","新","度","哎","唉","啊","哦","仪","老","少","日", "月 ","星"); ?> <?php /* * 文件:check.php * 作用:验证 */ session_start(); $errorMSG = ''; //验证用户输入是否和验证码一致 if(!is_null($_POST['check'])) { if (strcasecmp($_SESSION['code'],$_POST['code'])==0) $errorMSG = "<p style="font-size:12px;color:#009900">验证成功!</p>"; else $errorMSG = "<p style="font-size:12px;color:#FF0000">验证失败!</p>"; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <?php if($errorMSG){ echo $errorMSG; } ?> <form action=<?php echo $_SERVER['PHP_SELF']?> method=post> 请输入验证码:<input type="text" name="code" style="width: 80px"><img src="code.php" alt="php中文汉字验证码程序 " > <br> <input type="submit" name="check" value="提交验证码"> </form> </body> </html> <?php /* * 文件:code.php * 作用:验证码生成 * 特注:由 没牙的草 指导 版权所有转载注明出处!有付出才会有收获! */ include_once("chinesechar.php"); session_start(); // 设置 content-type header("Content-type: image/png"); // 创建图片 $im = imagecreatetruecolor(120, 30); // 创建颜色 $fontcolor = imagecolorallocate($im, 255, 255, 255); $bg = imagecolorallocate($im, 0, 0, 0); // 设置文字 for($i=0;$i<4;$i++) $text .= $ChineseChar[(array_rand($ChineseChar))]; $_SESSION['code'] = $text; // 设置字体 $font = 'simkai.ttf'; //开源代码phpfensi.com // 添加文字 imagettftext($im, 18, 0, 11, 21, $fontcolor, $font, iconv("GB2312","UTF-8",$text)); // 输出图片 imagepng($im); imagedestroy($im); ?>
如果想把上面的程序改成英文数字,只要在chinesechar.php 里面的数组中文改成数字或字母就KO了.