php实现的简单中文验证码功能示例
author:一佰互联 2019-04-26   click:144

本文实例讲述了php实现的简单中文验证码功能。分享给大家供大家参考,具体如下:

img.php

<?phpsession_start();/*for($i=0;$i<4;$i++) {  $rand .= dechex(rand(1,15));}$_SESSION[check_pic] = $rand;*/$image = imagecreatetruecolor(100, 30);$bg = imagecolorallocate($image, 0, 0, 0);$color = imagecolorallocate($image, 255, 255, 255);//imagestring($image, rand(1,6), rand(3,60), rand(3,15), $rand, $color);for($i=0;$i<3;$i++) {  $color2 = imagecolorallocate($image, rand(0,255), rand(0,255),rand(0,255));  imageline($image, rand(0,100), 0, 100, 30, $color2);}//rand() ---->0-max 不大于100for($i=0;$i<200;$i++) {  imagesetpixel($image, rand()%100, rand()%30, $color2);}//$str = iconv("gbk", "utf-8", "中");$str = "中国";$_SESSION[check_pic] = $str;//解决中文,页面本身为utf-8$str = mb_convert_encoding($str, "html-entities","utf-8" );//2:字体大小 3:倾斜角度 x , y 坐标imagettftext($image, 12, 0, 20, 20, $color, "MSYH.TTF", $str);//输出图片header("Content-type: image/jpeg;charset=utf-8");imagejpeg($image);/*修改eclipse的配置,可以使得eclipse的新建项目的默认编码直接为UTF-8在菜单栏的Window->Preferences->General->Workspace->Text file encoding将其改为UFT-8即可。*/?>

sub.php

<?php  header("Content-type: text/html;charset=utf-8");  session_start();  if($_POST[check]) {    if($_POST[check]==$_SESSION[check_pic]) {      echo "验证码正确:".$_SESSION[check_pic];    } else {      echo "验证码错误:".$_SESSION[check_pic];    }  }?><form action="" method="post">  <img alt="" src="img.php"><br/>  <input type="text" name="check"><br/>  <input type="submit" value="提交"></form>

运行效果图如下:

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。