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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
Oct 15 PHP
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
总结对比php中的多种序列化
Aug 28 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
一文搞懂PHP中的抽象类和接口
May 25 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中使用X-SendFile头让文件下载更快
2014/06/01 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
理解javascript正则表达式
2016/03/08 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python自动化测试之setUp与tearDown实例
2014/09/28 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Django 实现图片上传和下载功能
2020/12/31 Python
速比涛英国官网:Speedo英国
2019/07/15 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
大学军训感言600字
2014/02/25 职场文书
学术研讨会主持词
2015/07/04 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
Python道路车道线检测的实现
2021/06/27 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫