1、验证码一般是由后台生成的图片,如果用HTML制作的话很容易被软件获取,如果要用HTML的话就用javascript生成随机数。
2、在写一个英文字母的数组,用随机数来取下标吧,如果只用数字验证码的话随机数就可以,不过验证码不建议用javascript制作。
在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条)