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

首先来说一下文件目录结构:
|----------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
相关文章:
制作企业网站建设方案,怎样建设一个公司网站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
制作网站的公司有哪些,做一个公司网站要多少钱?
b2c电商网站制作流程,b2c水平综合的电商平台?
,怎么在广州志愿者网站注册?
免费视频制作网站,更新又快又好的免费电影网站?
如何快速生成专业多端适配建站电话?
如何获取上海专业网站定制建站电话?
小建面朝正北,A点实际方位是否存在偏差?
如何注册花生壳免费域名并搭建个人网站?
如何用花生壳三步快速搭建专属网站?
jQuery 常见小例汇总
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何在云主机上快速搭建网站?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
建站之星安装后如何自定义网站颜色与字体?
建站之星价格显示格式升级,你的预算足够吗?
如何通过虚拟主机快速搭建个人网站?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站三合一如何选?哪家性价比更高?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何在IIS中新建站点并配置端口与物理路径?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
高防服务器如何保障网站安全无虞?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
韩国服务器如何优化跨境访问实现高效连接?
香港服务器租用费用高吗?如何避免常见误区?
网站微信制作软件,如何制作微信链接?
Swift中循环语句中的转移语句 break 和 continue
网站制作壁纸教程视频,电脑壁纸网站?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
活动邀请函制作网站有哪些,活动邀请函文案?
,想在网上投简历,哪几个网站比较好?
个人网站制作流程图片大全,个人网站如何注销?
如何在阿里云完成域名注册与建站?
如何在腾讯云服务器快速搭建个人网站?
如何基于PHP生成高效IDC网络公司建站源码?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
学校为何禁止电信移动建设网站?
建站之星如何配置系统实现高效建站?
黑客入侵网站服务器的常见手法有哪些?
在线制作视频网站免费,都有哪些好的动漫网站?
建站主机选哪种环境更利于SEO优化?
中山网站推广排名,中山信息港登录入口?
如何通过万网虚拟主机快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。