
<HEAD>
<TITLE>生成验证码</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function createCode(len)
{
var seed = new Array(
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'0123456789'
) //创建需要的数据数组
var idx,i
var result = '' //返回的结果变量
for (i=0i<leni++) //根据指定的长度
{
idx = Math.floor(Math.random()*3)//获得随机数据的整数部分-获取一个随机整数
result += seed[idx].substr(Math.floor(Math.random()*(seed[idx].length)), 1)//根据随机数获取数据中一个值
}
return result//返回随机结果
}
function test() {
var inputRandom=document.getElementById("inputRandom").value
var autoRandom=document.getElementById("autoRandom").innerHTML
if(inputRandom==autoRandom) {
alert("通过验证")
} else {
alert("没有通过验证")
}
}
</SCRIPT>
</HEAD>
<BODY>
验证码长度:
<SELECT id="sel">
<option value=1>1</option>
<option value=3>3</option>
<option value=5>5</option>
<option value=7 selected>7</option>
<option value=9>9</option>
</SELECT>
<BR>
<table>
<tr>
<td>验证码:</td>
<td><input type="text" id="inputRandom"></td>
<td><label id="autoRandom" value=""></label><INPUT TYPE="button" VALUE="获取验证码" ONCLICK="autoRandom.innerHTML=createCode(sel.value)"></td>
<td><input type="button" value="验证" onclick="test()"></td>
</tr>
</table>
<script type="text/javascript">
window.onload()=autoRandom.innerHTML=createCode(sel.value)
</script>
</BODY>
</HTML>
在html中的文本框中加入验证码,可以通过以下代码实现:验证码通过GD生成PNG图片,并把$randval随机数字赋给$_SESSION['login_check_num'],在通过用户输入的$_POST进行比较,来判断是否正确。达到需要实现的功能,需要修改php.ini文件,使php支持GD库。 <?php//调用此页面,如果下面的式子成立,则生成验证码图片if($_GET["action"]=="verifycode"){rand_create()}//验证码图片生成function rand_create(){//通知浏览器将要输出PNG图片Header("Content-type: image/PNG")//准备好随机数发生器种子srand((double)microtime()*1000000)//准备图片的相关参数$im = imagecreate(62,20)$black = ImageColorAllocate($im, 0,0,0)//RGB黑色标识符 $white = ImageColorAllocate($im, 255,255,255)//RGB白色标识符 $gray = ImageColorAllocate($im, 200,200,200)//RGB灰色标识符 //开始作图imagefill($im,0,0,$gray)while(($randval=rand()%100000)<10000){$_SESSION["login_check_num"] = $randval//将四位整数验证码绘入图片imagestring($im, 5, 10, 3, $randval, $black)}//加入干扰象素for($i=0$i<200$i++){$randcolor =ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255))imagesetpixel($im, rand()%70 , rand()%30 , $randcolor)}//输出验证图片ImagePNG($im)<!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>
<title>JS生成验证码</title>
<style type="text/css">
.code {
background-image: url(code.jpg)
font-family: Arial
font-style: italic
color: Red
border: 0
padding: 2px 3px
letter-spacing: 3px
font-weight: bolder
}
.unchanged {
border: 0
}
</style>
<script language="javascript" type="text/javascript">
var code //在全局 定义验证码
function createCode() {
code = ""
var codeLength = 6//验证码的长度
var checkCode = document.getElementById("checkCode")
var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')//所有候选组成验证码的字符,当然也可以用中文的
for (var i = 0 i < codeLength i++) {
var charIndex = Math.floor(Math.random() * 36)
code += selectChar[charIndex]
}
//alert(code)
if (checkCode) {
checkCode.className = "code"
checkCode.value = code
}
}
function validate() {
var inputCode = document.getElementById("input1").value
if (inputCode.length <= 0) {
alert("请输入验证码!")
} else if (inputCode != code) {
alert("验证码输入错误!")
createCode()//刷新验证码
} else {
alert("^-^ OK")
}
}
</script>
</head>
<body onload="createCode()">
<form action="#">
<input type="text" id="input1" /> <input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px" /><br />
<input id="Button1" onclick="validate()" type="button" value="确定" />
</form>
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)