> php教程 > php手册 > 본문

php+jQuery+ajax网页验证码

WBOY
풀어 주다: 2016-06-06 19:59:49
원래의
1306명이 탐색했습니다.

一般我们在做网页的时候,再设计用户登录,注册或者留言的时候都经常用到验证码,下面是一种简单实用的php网页验证码的生成和检验过程。 jQuery下载地址:http://docs.jquery.com/Downloading_jQuery testcode.php !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1

一般我们在做网页的时候,再设计用户登录,注册或者留言的时候都经常用到验证码,下面是一种简单实用的php网页验证码的生成和检验过程。

jQuery下载地址:http://docs.jquery.com/Downloading_jQuery

testcode.php



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>验证码</title>
<style>
.wrong{ color:red;}
.right{ color:black;}
</style>
<script language="javascript" src="js/jquery-1.6.min.js"></script>
<script language="javascript">
function check_code(){
	var URL = "checkCode.php";
	var RequestData = 'action=checkcode&code='+$('#R-code').val();
	$.ajax({
		type:'POST',
		url:URL,
		data:RequestData,
		async:false,
		cache: false,
		success:function(responseData){
			var Result = eval('('+responseData+')');
			if(Result.verifycode=='Y'){
				$('#info-code').removeClass().html('验证码输入正确').addClass("right");
				}
			else $('#info-code').removeClass().html('验证码输入错误').addClass("wrong");
			}
		});
	}
function refresh_code(){
	document.getElementById("imgcode").src="createCode.php?a="+Math.random();
    }
</script>


<?php function getCodeHtml(){
	$codehtml='<div id="codetest">'
	         .'<h2>Code Test</h2>'
             .'<label for="R-code">Code:</label>'
		     .'<img id="imgcode" src="createCode.php" alt="验证码"><a href="javascript:refresh_code()">看不清?换一张</a><br>'
		     .'<input id="R-code"><span id="info-code"></span><br>'
	         .'<input type="button" onclick="check_code();" value="Check">'
             .'';
	echo $codehtml;
	}
echo getCodeHtml();
 ?>

로그인 후 복사

createCode.php
<?php //生成验证码
     session_start();
     $codeNum=4;      //验证码个数
     $codeWidth=80;   //验证码宽度
     $codeHeight=18;  //验证码高度
     $code=' ';
     for($i=0;$i<$codeNum;$i++){  //生成验证码
		 switch(rand(0,2))
		 {
			 case 0:$code[$i]=chr(rand(48,57)); break;   //数字
			 case 1:$code[$i]=chr(rand(65,90)); break;   //大写字母
             case 2:$code[$i]=chr(rand(97,122));break;   //小写字母
			 }
		 }
     $_SESSION["VerifyCode"]=$code;
     $image=imagecreate($codeWidth,$codeHeight);
     imagecolorallocate($image,255,255,255);
	 //生成干扰像素
     for($i=0;$i<80;$i++){
		 $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
         imagesetpixel($image,rand(1,$codeWidth),rand(1,$codeHeight),$dis_color);
		 }
	 //打印字符到图像
     for($i=0;$i<$codeNum;$i++){
		 $char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
         imagechar($image,60,($codeWidth/$codeNum)*$i,rand(0,5),$code[$i],$char_color);
		 }
     header("Content-type:image/png");
     imagepng($image);      //输出图像到浏览器
     imagedestroy($image);  //释放资源
?>   
로그인 후 복사

checkCode.php
<?php session_start();
     @$postcode = $_POST['code'];
     if((strtoupper($postcode)) == strtoupper(($_SESSION["VerifyCode"]))) 
	 echo '{"verifycode":"Y"}';
     else echo '{"verifycode":"N"}';
?>
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿