Home > Diary > Php图片验证

Php图片验证

上一篇文章.讲到建立一个表单给自己发送邮件.如果碰到Spam就麻烦了.所以要验证一下比较好.今天介绍一个用图片验证的办法.

写个生成图片的的php文件.我们命名为yz_img.php,以下是代码.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreate(44,15);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景
srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++){
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(1,9);
$yzm.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
for($i=0;$i<100;$i++) //加入干扰象素
{ 
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
} 
ImagePNG($im);
ImageDestroy($im);
$_SESSION['yzm'] = $yzm;//给session赋值
?>

在要插入图片的地方插入这个图片.
即:

<img src="yz_img.php" alt="验证码" />

最后验证一下$_SESSION['yzm']验证搞定.

  1. Leeiio Feb 24th, 2009 @ 21:41 | #1

    呃,話說又被我占著沙發了?最近也在學php了我~

  2. yinheli Feb 24th, 2009 @ 21:50 | #2

    @Leeiio
    这么快. :idea:

  3. Leeiio Feb 24th, 2009 @ 21:54 | #3

    @yinheli
    其實是這樣的,有人在我的blog問我@的那種懸浮顯示信息的效果怎麼整,我就上你這搜索給他看,然後就看到你的新文章了~

  4. yinheli Feb 24th, 2009 @ 21:58 | #4

    @Leeiio
    呵呵.貌似用那种效果的人越来越多了呀.

  5. xiaorsz Feb 25th, 2009 @ 00:07 | #5

    记得以前用.net 搞过验证码,不过早忘记了!!

  6. 吖Bee Feb 25th, 2009 @ 13:09 | #6

    嗯嗯~看到效果咯!

    因为这个悬浮的效果好看呀~

  7. 吖Bee Feb 25th, 2009 @ 21:47 | #7

    请教你一个问题:

    关于Title的问题,我是用这个方法来区别首页与文章页的标题的~你有更好的方法吗?

    – xxxxx(文字)!

  8. 吖Bee Feb 25th, 2009 @ 21:49 | #8

    ………不知道能发PHP代码不?

    
         - 演绎精彩,分享快乐!
    
  9. Zoll Mar 1st, 2009 @ 11:04 | #9

    啊哈~换肤啦~
    被我发现啦~

  10. yinheli Mar 1st, 2009 @ 13:40 | #10

    @Zoll
    呵呵,是自己根据inove参照hybrid修改的.借用了Microsoft Windows 7 官方页面的背景.

  11. yinheli Mar 1st, 2009 @ 21:13 | #11

    @吖Bee
    看不到你的代码呀,我的方法写了个比较长的函数.也比较简单.我以为大家都会.就没有帖出来献丑了.我用的主题基本都是那样子改的…有必要请发邮件索要. :razz:

  12. Leeiio Mar 2nd, 2009 @ 10:02 | #12

    不满意别人的主题,于是自己操刀了?

  13. yinheli Mar 2nd, 2009 @ 18:35 | #13

    @Leeiio
    呵呵 :razz:

  14. 午夜客 Mar 5th, 2009 @ 17:24 | #14

    这皮不错哟! :arrow:

  15. yinheli Mar 5th, 2009 @ 17:27 | #15

    @午夜客
    已经发布啦

  16. AA May 15th, 2009 @ 19:15 | #16

    最后验证一下$_SESSION['yzm']验证搞定.

    怎么搞定啊?

Submitting Comment, Give me a second...

Leave a comment

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">
Trackbacks & Pingbacks ( 0 )
  1. No trackbacks yet.