如何用html编写产生验证码

如何用html编写产生验证码,第1张

<HTML>

<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>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6238277.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存