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 mysql数据库操作分页类
Jun 04 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
PHP实现的封装验证码类详解
Jun 18 PHP
CI框架Session.php源码分析
Nov 03 PHP
php树型类实例
Dec 05 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
帝国cms常用标签汇总
Jul 06 PHP
6个超实用的PHP代码片段
Aug 10 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/08/27 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
Laravel下生成验证码的类
2017/11/15 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
Django 静态文件配置过程详解
2019/07/23 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
python opencv实现简易画图板
2020/08/27 Python
python实现三种随机请求头方式
2021/01/05 Python
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
计算机工程学院个人求职信
2013/10/05 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
超强台风观后感
2015/06/09 职场文书
红色革命电影观后感
2015/06/18 职场文书
nginx请求限制配置方法
2021/07/09 Servers
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技