专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » php随机验证码:PHP验证码 »正文

php随机验证码:PHP验证码

来源: 发布时间:星期日, 2008年10月19日 浏览:398次 评论:0
PHP代码 确认码生成文件checkNum_session.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"]来调用 //生成验证码图片, srand((double)microtime()*1000000); $im = imagecreate(50,20);//图片宽与高; //主要用到黑白灰三种色; $black = ImageColorAllocate($im, 0,0,0); $white = ImageColorAllocate($im, 255,255,255); $gray = ImageColorAllocate($im, 200,200,200); //将四位整数验证码绘入图片 imagefill($im,68,30,$gray); //如不用干扰线,注释就行了; $li = ImageColorAllocate($im, 220,220,220); for($i=0;$i<3;$i++) {//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入; imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li); } //字符在图片的位置; imagestring($im, 5, 8, 2, $authnum_session, $white); for($i=0;$i<90;$i++) {//加入干扰象素 imagesetpixel($im, rand()%70 , rand()%30 , $gray); } ImagePNG($im); ImageDestroy($im); ?> PHP代码 确认码调用文件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
0

相关文章

读者评论

  • 1ds(218.28.71.*) 发布于:星期一, 2008年12月8日
    fdssdg

发表评论

  • 昵称:
  • 内容: