PHP+javascript制作带提示的验证码源码分享


Posted in PHP onMay 28, 2014

html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>简单验证码</title>
</head>
<script language="javascript" src="js/checked.js"></script>
<body>
<form id="register" name="register" method="post" >
<table align="center">
    <tr>
      <td ><div align="right">验证码:</div></td>
      <td ><input id="yzm" type="text" name="yzm" size="8" onBlur="javascript:chkyzm(form)" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'"/></td><td>
        <input id="yzm2" type="hidden" value="" /></td>
      <td align="center" valign="middle"><script>yzm()</script></td>
      <td ><a href="javascript:code()" style="text-decoration:none">看不清</a></td>
      <td width="150"  align="center"><div id="yzm1"><font color="#999999">请输入验证码</font></div></td>
    </tr>  
</table> 
  </form>
</body>
</html>

JS代码:

function chkyzm(form){     //对验证码进行验证
 if(form.yzm.value==""){
  yzm1.innerHTML="<font color=#FF0000>×验证码不能为空</font>"; 
 }else if(form.yzm.value!=form.yzm2.value){
  yzm1.innerHTML="<font color=#FF0000>×验证码输入错误</font>";
 }else{
  yzm1.innerHTML="<font color=green>√验证码输入正确</font>";
 }
}
function yzm(){      //生成验证码
 var num1=Math.round(Math.random()*1000000);//随机小数放大
 var num=num1.toString().substr(0,4);//取4位整数
 var yzm2=document.getElementById("yzm2");
 document.write("<img name=codeimg src=yzm.php?num="+num+"'>");
 yzm2.value=num;
}
function code(){      //重置验证码
 var num1=Math.round(Math.random()*1000000);
 var num=num1.toString().substr(0,4);
 var yzm2=document.getElementById("yzm2");
 document.codeimg.src="yzm.php?num="+num;
 yzm2.value=num;
}

yzm.php代码:

<?php
header("Content-type: image/png");
$im=imagecreate(66,22);       //创建画布
$black=imagecolorallocate($im,0,0,0);   //定义背景
$white=imagecolorallocate($im,255,255,255);  //定义背景
$gray=imagecolorallocate($im,200,200,200);  //定义背景
imagefill($im,0,0,$gray);      //填充颜色
for($i=0;$i<4;$i++){ //定义4位随机数
 $str=mt_rand(1,5);  //定义随机字符所在位置的的Y坐标
 $size=mt_rand(6,9); //定义随机字符的字体
 $authnum=substr($_GET[num],$i,1);  //获取超级链接中传递的验证码
 imagestring($im,$size,(3+$i*15),$str,$authnum,imagecolorallocate($im,rand(0,250),rand(0,250),rand(0,250)));//rand(0,500)数字的模糊程度
}       //水平输出字符串
for($i=0;$i<200;$i++){  //执行for循环,为验证码添加模糊背景
  $randcolor=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255)); //创建背景
  imagesetpixel($im,rand()%70,rand()%30,$randcolor);  //绘制单一元素
}
imagepng($im);    //生成png图像
imagedestroy($im);   //销毁图像
?>

注意:PHP需要配置才能执行相关方法。

运行效果:

PHP 相关文章推荐
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php获取访问者IP地址汇总
Apr 24 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
php将xml转化对象的实例详解
Nov 17 PHP
微信支付开发教程(一)微信支付URL配置
May 28 #PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 #PHP
php轻松实现中英文混排字符串截取
May 28 #PHP
分享一段php获取linux服务器状态的代码
May 27 #PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 #PHP
将二维数组转为一维数组的2种方法
May 26 #PHP
windwos下使用php连接oracle数据库的过程分享
May 26 #PHP
You might like
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python显示天气预报
2014/03/02 Python
python链接Oracle数据库的方法
2015/06/28 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
python定时关机小脚本
2018/06/20 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Django中的forms组件实例详解
2018/11/08 Python
python将txt文件读取为字典的示例
2018/12/22 Python
python中的itertools的使用详解
2020/01/13 Python
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
节约用水倡议书
2014/04/16 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
稽核岗位职责
2015/02/10 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python