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()函数
代码如下 | 复制代码 |
<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> |
看一个完整的实例
php 验证码生成与调用的例子,平时开发中经常使用,记录一下。
1、验证码生成文件code.php
代码如下 | 复制代码 |
<? Header("Content-type:image/png"); //定义header,声明图片文件,最好是png,无版权之扰; //生成新的四位整数验证码 session_start();//开启session; authnum_session = ''; str = 'abcdefghijkmnpqrstuvwxyz1234567890'; //定义用来显示在图片上的数字和字母; l = strlen(str); //得到字串的长度; //循环随机抽取四位前面定义的字母和数字; for(i=1;i<=4;i++) { num=rand(0,l-1); //每次随机抽取一位数字;从第一个字到该字串最大长度, //减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中; authnum_session.= str[num]; //将通过数字得来的字符连起来一共是四位; } session_register("authnum_session"); //用session来做验证也不错;注册session,名称为authnum_session, //其它页面只要包含了该图片 //即可以通过_SESSION["authnum_session"]来调用 //生成验证码图片, |
以上代码,参考了如下的文章:
php图片验证码
php生成验证码的例子
用php生成带有雪花背景的验证码
2、调用验证码的页面 sessionValidate.php
代码如下 | 复制代码 |
<?php session_start(); //在页首先要开启session, //error_reporting(2047); session_destroy(); //将session去掉,以每次都能取新的session值; //用seesion 效果不错,也很方便 ?> <html> <head> <title>session 图片验证实例</title> </head> <body> 此例为session验证实例 <form action="" method="post"> 验证码:<input type="text" name="validate" value="" size=10> <img src="checkNum_session.php"><br> <input type="submit"> </form> <?php //打印上一个session; echo "上一个session:<b>"._SESSION["authnum_session"]."</b><br>"; validate=""; if(isset(_POST["validate"])){ validate=_POST["validate"]; echo "您刚才输入的是:"._POST["validate"]."<br>状态:"; if(validate!=_SESSION["authnum_session"]){ //判断session值与用户输入的验证码是否一致; echo "<font color=red>输入有误</font>"; }else{ echo "<font color=green>通过验证</font>"; } } /* //打印全部session; PrintArr(_SESSION); function PrintArr(aArray){ echo '<xmp>'; print_r(aArray); echo '</xmp>'; } */ ?> |