验证码是网站的重要组成部分,不管是在注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性。很多情况下,我们的一些数据库会被那些垃圾广告软件发送大量的垃圾信息,这个是我们不愿看到的。更有甚者,一些非法用户会通过不断提交信息企图得到数据库的内容,或者造成网站的堵塞。所以,网站的验证码还是非常有必要的。
而随着验证码的使用,很多不法分子“跟进”了它们的技术,所以当前很多门户网站的验证码都做了相应的改进。于是出现了文字长度变长,汉字夹杂数字或者字母的情况.
1 一个简单的验证码实例
1.1 显示验证码的图片
| <?php
$num=intval(mt_rand(1000,9999));
for($i=0 ; $i<4 ;$i++)
{
echo "<img src=img/yzm/".substr(strval($num),$i,1).".gif/>";
}
?>
|
1.2 验证过程
| if (strval($inputyzm)!=strval($num))
{
echo "<script>alert('验证码错误!');history.go(-1);</script>";
exit;
}
|
2 一个汉字的验证码实例
2.1 显示验证码的图片
| <?php
$str="汉","字","验","证","码"); //可以定义汉字的内容和个数
$word=strlen($str));
for ($i=0;$i<4;$i++)
{
$num=rand(0,$word);
$img = $img."<img src='../images/yzm/".$num".gif'/>";
$pic = $pic.$str[$num];
}
>
|
2.2 将生成的随机字符串赋给一个隐藏域
<input type="hidden" name="yzm" value="<?php echo $pic; ?/>">
2.3 定义一个check()函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | <script language="javascript">
function check(form){
if(form.yzm.value==""){
alert("请输入验证码");
form.yzm.focus();
return false;
}
if(form.yzm.vale!=form.yz.value){
alert("验证码错误");
form.yzm.focus();
return false;
}
}
</script>
|
Comments »