PHP (20140513)

验证验证码的PHP代码:

利用随机数随机生成四位数的验证码。

 1 <?php
 2 
 3 session_start();
 4 $arr = array(
 5     'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x',
 6     'y','z','0','1','2','3','4','5','6','7','8','9'
 7 );
 8 $rand = "";
 9 for($i=1;$i<=4; $i++){
10     $rand .= $arr[rand(0,count($arr)-1)];
11 }
12 $_SESSION['check_pic'] = $rand;
13 //生成图片
14 $im = imagecreatetruecolor(100,30);
15 //生成颜色,当第一次调用生成颜色的方法,是生成背景颜色
16 $bg = imagecolorallocate($im,0,0,0);
17 //第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色
18 $te = imagecolorallocate($im,255,255,255);
19 
20 //在图片上面生成文字
21 imagestring($im,rand(1,5),rand(3,70),rand(3,15),$rand,$te);
22 //要把php当成图片输出,必须给文件一个头申明
23 
24 ob_clean();
25 header("Content-type:image/jpeg");
26 //最终生成图片
27 imagejpeg($im);
28 
29 ?>

验证验证码是否正确的代码:

 1 <html>
 2 <head>
 3     <meta http-equiv="Content-Type" 
 4 
 5 content="text/html;charset=UTF-8"/>
 6 </head>
 7 <body>
 8 
 9 <?php
10 
11 session_start();
12 if(isset($_POST['check'])){
13     if($_POST['check'] == $_SESSION['check_pic']){
14         echo "验证成功";
15     }else{
16         echo "验证失败";
17     }
18 }
19 ?>
20 
21 <form action="check2.php" method="post">
22     <input type="text" name="check"/>
23     <img src="check1.php" alt="" onclick="refreshImg()" 
24 
25 id="chk" style="cursor: pointer"/>
26     <br/>
27 
28     <input type="submit" value="提交"/>
29 </form>
30 <script>
31 function refreshImg(){
32 //避免浏览器认为一直访问的同一个页面,所以用随机数传一个
33 
34 值,让它以为访问的是不同页面
35     var rand = Math.round(Math.random()*10000);
36     var chk = document.getElementById("chk");
37     chk.src = "check1.php?num="+rand;
38 }
39 </script>

 

posted @ 2014-05-13 23:41  Sunshine丶  阅读(143)  评论(0编辑  收藏  举报