php实现网页端验证码功能

发布时间 - 2026-01-11 02:17:35    点击率:

我们在实际开发中,会用到短信验证码以及网页验证码,相对来说网页验证码的成本比较低,安全系数也还可以,接下来我们就来做一个网页端的验证码,直接上代码:

首先来说一下文件目录结构:

    |----------phpyanzheng  项目文件夹

      |----fonttype 文件夹放字体文件,字体文件一般以 .ttf和.otf结尾

      |----1.php  里面放php语言代码

      |----index.html  里面放网页布局

1.php

<?php
  header('content-type:image/jpeg');//定义一下代码以jpeg文件来解析
  $width = 120;//定义了图像的宽
  $height = 40;//定义了图像的高
  $element = array('q','w','e','r','t','y','u','i','o','p','l','k','j','h','g','f','d','s','a','z','x',
  'c','v','b','n','m','1','2','3','4','5','6','7','8','9','0','Q','W','E','R','T','Y','U','I','O','P','A'
  ,'S','D','F','G','H','J','K','L','M','N','B','V','C','X','Z');//定义一个显示文本的数组
  $string = '';
  for($i=0;$i<4;$i++){
    $string.=$element[rand(0,count($element)-1)];//随机产生四个文本目标
  }
  $img = imagecreatetruecolor($width, $height);//设置验证区宽高
  $colorBg = imagecolorallocate($img,rand(185,255),rand(185,255),rand(185,255));//产生200-255的随机数
  $colorBorder = imagecolorallocate($img,rand(50,100),rand(50,100),rand(50,100));//边框颜色
  $colorDian = imagecolorallocate($img,rand(0,100),rand(0,100),rand(0,100));//背景小点的颜色
  $colorLine = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
  $colorString = imagecolorallocate($img,rand(20,80),rand(20,80),rand(20,80));
  imagefill($img, 0, 0, $colorBg);//设置位置和背景颜色
  imagerectangle($img,0,0,$width-1,$height-1,$colorBorder);//画一个边框
  for($i=0;$i<200;$i++){//循环出200个干扰点
    imagesetpixel($img, rand(0, $width-1), rand(0, $height-1), $colorDian);
  }
  for($i=0;$i<round(5);$i++){//循环出5条干扰线
    imageline($img,rand(0,$width/2),rand(0,$height/2),rand($width/2,$width),rand($height/2,$height),$colorLine);
  }
  //imagestring($img, 4, 0, 0,'a5dg', $colorString);
  
  imagettftext($img,25,rand(5, 15),rand(0,40),39,$colorString,'fonttype/PrincetownStd.otf',$string);
  //    图像名称  字体大小 倾斜角度 起始位置X轴 起始位置Y轴 颜色 字体位置 显示的内容
  imagejpeg($img);//输出图像
?>

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>孙三峰--验证码</title>
    <script type="text/javascript" src="js/jquery-1.1.0.js" ></script>
  </head>
  <body>
    <!--注意:原文中对应的ip地址是自己电脑端ip,如果不能正常运行,请修改ip-->
    <p>
      <label class="lbright">验证码:</label> 
      <span> 
        <input type="text" name="validcode" style="width:70px; vertical-align:middle;" id="validcode"/> 
        <img id="codePic" src="http://192.168.1.113:8601/PHP/phpyanzheng/1.php" width="120" height="40"/>          
      </span>         
      <span id="codePic" onclick="getPic();">看不清楚,换一张</span> <!---->
    </p>     
  </body>
  <script type="text/javascript"> 
     function getPic(){ 
         $("#codePic").attr("src","http://192.168.1.113:8601/PHP/phpyanzheng/1.php?flag="+Math.random()); <!--局部刷新--> 
     }; 
  </script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# php  # 验证码  # 一个实用的php验证码类  # php图像验证码生成代码  # PHP写的简单数字验证码实例  # 一个漂亮的php验证码类(分享)  # php图片验证码代码  # PHP生成图片验证码、点击切换实例  # php发送短信验证码完成注册功能  # PHP验证码类代码( 最新修改  # 完全定制化! )  # 完美解决thinkphp验证码出错无法显示的方法  # PHP使用CURL实现对带有验证码的网站进行模拟登录的方法  # 随机数  # 安全系数  # 做一个  # 较低  # 就来  # 看不  # 也还  # 正常运行  # 大家多多  # 画一  # 在实际  # rand  # string  # array  # imagecreatetruecolor  # img  # count  # width  # jpeg 


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


相关推荐: Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  网站页面设计需要考虑到这些问题  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  怎样使用JSON进行数据交换_它有什么限制  历史网站制作软件,华为如何找回被删除的网站?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何在万网ECS上快速搭建专属网站?  如何安全更换建站之星模板并保留数据?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何实现文件上传和存储?(本地与S3配置)  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Python并发异常传播_错误处理解析【教程】  太平洋网站制作公司,网络用语太平洋是什么意思?  如何快速生成可下载的建站源码工具?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  油猴 教程,油猴搜脚本为什么会网页无法显示?  PHP正则匹配日期和时间(时间戳转换)的实例代码  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  教学论文网站制作软件有哪些,写论文用什么软件 ?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何获取上海专业网站定制建站电话?  Laravel如何实现多对多模型关联?(Eloquent教程)  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Python文本处理实践_日志清洗解析【指导】  如何在阿里云服务器自主搭建网站?  Laravel如何使用Telescope进行调试?(安装和使用教程)  网页设计与网站制作内容,怎样注册网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  php485函数参数是什么意思_php485各参数详细说明【介绍】  简历在线制作网站免费版,如何创建个人简历?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel如何升级到最新版本?(升级指南和步骤)  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  ,网页ppt怎么弄成自己的ppt?  如何基于云服务器快速搭建网站及云盘系统?  北京网站制作的公司有哪些,北京白云观官方网站?  如何在搬瓦工VPS快速搭建网站?  Laravel storage目录权限问题_Laravel文件写入权限设置  北京企业网站设计制作公司,北京铁路集团官方网站?  怎么用AI帮你为初创公司进行市场定位分析?