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 相关文章推荐
escape unescape的php下的实现方法
Apr 27 PHP
php 页面执行时间计算代码
Dec 04 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
php检查字符串中是否有外链的方法
Jul 29 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
Jan 30 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 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框架的性能
2008/01/10 PHP
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
Python素数检测实例分析
2015/06/15 Python
python学习 流程控制语句详解
2016/06/01 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Python项目跨域问题解决方案
2020/06/22 Python
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
生日邀请函范文
2014/01/13 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
大学生暑期实践感言
2014/02/26 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
违章停车检讨书
2014/10/21 职场文书
员工自我评价范文
2015/03/11 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
Python如何加载模型并查看网络
2022/07/15 Python