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

发布时间 - 2026-01-10 22:16:17    点击率:

本文实例讲述了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运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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


# php  # 中文  # 验证码  # php简单统计中文个数的方法  # PHP统计目录中文件以及目录中目录大小的方法  # php中计算中文字符串长度、截取中文字符串的函数代码  # PHP 实现字符串翻转(包含中文汉字)的实现代码  # php与javascript正则匹配中文的方法分析  # php自定义截取中文字符串-utf8版  # php实现的中文分词类完整实例  # php中文字符串截取多种方法汇总  # PHP的Json中文处理解决方案  # php自定义函数实现统计中文字符串长度的方法小结  # 操作技巧  # 程序设计  # 相关内容  # 将其  # 感兴趣  # 给大家  # 更多关于  # 所述  # 中国  # 面向对象  # 运算符  # 新建项目  # 编程技巧  # 验证码错误  # 讲述了  # imagestring  # imageline  # bg  # color 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  python中快速进行多个字符替换的方法小结  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  昵图网官网入口 昵图网素材平台官方入口  EditPlus 正则表达式 实战(3)  如何基于PHP生成高效IDC网络公司建站源码?  如何在云主机上快速搭建多站点网站?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  详解Android——蓝牙技术 带你实现终端间数据传输  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel怎么清理缓存_Laravel optimize clear命令详解  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何实现建站之星域名转发设置?  如何在Windows服务器上快速搭建网站?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  如何快速生成专业多端适配建站电话?  详解jQuery中的事件  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何在建站之星绑定自定义域名?  三星、SK海力士获美批准:可向中国出口芯片制造设备  简单实现Android文件上传  专业商城网站制作公司有哪些,pi商城官网是哪个?  Python并发异常传播_错误处理解析【教程】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  浅述节点的创建及常见功能的实现  黑客如何通过漏洞一步步攻陷网站服务器?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何为不同团队 ID 动态生成多个“认领值班”按钮  Laravel如何实现API资源集合?(Resource Collection教程)  七夕网站制作视频,七夕大促活动怎么报名?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  网易LOFTER官网链接 老福特网页版登录地址  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  高端建站三要素:定制模板、企业官网与响应式设计优化