php实现的简单中文验证码功能示例


Posted in PHP onJanuary 03, 2017

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

img.php

<?php
session_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 不大于100
for($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中上传大体积文件时需要的设置
Oct 09 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
php数字转汉字代码(算法)
Oct 08 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
基于php冒泡排序算法的深入理解
Jun 09 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
php与c 实现按行读取文件实例代码
Jan 03 #PHP
浅谈PHP安全防护之Web攻击
Jan 03 #PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 #PHP
解析PHP之提取多维数组指定列的方法
Jan 03 #PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 #PHP
php cookie用户登录的详解及实例代码
Jan 03 #PHP
详解PHP安装mysql.so扩展的方法
Dec 31 #PHP
You might like
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
tagName的使用,留一笔
2006/06/26 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
理解javascript回调函数
2014/12/28 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
详解Vue爬坑之vuex初识
2017/06/14 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
深入理解Python3中的http.client模块
2017/03/29 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
python如何重载模块实例解析
2018/01/25 Python
python中对_init_的理解及实例解析
2019/10/11 Python
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
平面设计的岗位职责
2013/11/08 职场文书
优秀经理获奖感言
2014/03/04 职场文书
计算机系本科生求职信
2014/05/31 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
班主任经验交流材料
2014/12/16 职场文书
2015年安全月活动总结
2015/03/26 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
python lambda 表达式形式分析
2022/04/03 Python