以下代码的实现
分类:博客热点

?phpsession_start();# 取得随机字符function getRandStr($length = 4, $mode = 1){$str1 = '123456789';$str2 = 'abcdefghijklmnopqrstuvwxyz';$str3 = 'ABCDEFGHIJKLMNPQRSTUVWXYZ';$str4 = '_';$str5 = '`~!@#$%^*()-+=/|{}[];:',./?';$str6 = '孙继海立功了不要给日本人任何机会伟大的中国右后卫他继承中华民族的光荣传统董存瑞黄继光秋少云在这一刻灵魂突起孙继海一个人他代表了中华民族足球悠久的传统在这一刻他不是一个人的战斗他不是一个人李毅大帝面对这个点球他面对的是全世界中国球迷的目光和期待川口能活曾经在附加赛当中世界杯预选塞的附加赛当中扑出过无数个点球大帝肯定深知这一点他还能够微笑着面对他面前的这个人吗秒钟以后他会是怎么的表情球进了比赛结束了中国队队获得了胜利日本队他们没有再一次的到在济科的面前伟大的中华人民共和国伟大的中国队的右后卫小猫今天生日快乐中华人民共和国万岁日本队也许会后悔的济科他在下半场多打一人的情况下打得太保守太沉稳了他失去了自己的勇气面对中国足球悠久的历史和传统他没有在拿出小组赛那样冲撞门将的作风终于自惭形秽他们该回家了他们不用回遥远的日本因为他们会选择集体剖腹自杀再见';

网上有很多的php随机数与验证码的代码与文章,真正适用的没有几个。

switch ($mode){case '0': $str = $str1.$str2.$str3.$str4; break;

索性自己搞一个吧。

case '1': $str = $str1; break;

开始本节的php教程 吧,以下代码的实现,主要做到可以很好区分一个get_code(),另一个create_check_image(),输出图像直接调用后面的,session()取验证码时直接get_code()就ok,顺带提下使用session时必须将session_star()放在最前面。

case '2': $str = $str2; break;

代码如下:

case '3': $str = $str3; break;

[php] view plaincopy

case '4': $str = $str2.$str3; break;

  1. <?php  
  2. class RandCheckCode  
  3. {  
  4.         /*函数名称:get_code() 
  5.         *作用:取得随机字符串 
  6.         * 参数: 
  7.         1、(int)$length = 32 #随机字符长度 
  8.         2、(int)$mode = 0    #随机字符类型, 
  9.         0为大小写英文和数字,1为数字,2为小写字母,3为大写字母, 
  10.         4为大小写字母,5为大写字母和数字,6为小写字母和数字 
  11.         *返回:取得的字符串 
  12.         */  
  13.         function get_code($length=32,$mode=0)//获取随机验证码函数  
  14.         {  
  15.                 switch ($mode)  
  16.                 {  
  17.                         case '1':  
  18.                                 $str='123456789';  
  19.                                 break;  
  20.                         case '2':  
  21.                                 $str='abcdefghijklmnopqrstuvwxyz';  
  22.                                 break;  
  23.                         case '3':  
  24.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ';  
  25.                                 break;  
  26.                         case '4':  
  27.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';  
  28.                                 break;  
  29.                         case '5':  
  30.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';  
  31.                                 break;  
  32.                         case '6':  
  33.                                 $str='abcdefghijklmnopqrstuvwxyz1234567890';  
  34.                                 break;  
  35.                         default:  
  36.                                 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';  
  37.                                 break;  
  38.                 }  
  39.                 $checkstr='';  
  40.                 $len=strlen($str)-1;  
  41.                 for ($i=0;$i<$length;$i++)  
  42.                 {  
  43.                         //$num=rand(0,$len);//产生一个0到$len之间的随机数  
  44.                         $num=mt_rand(0,$len);//产生一个0到$len之间的随机数  
  45.                         $checkstr.=$str[$num];  
  46.                          
  47.                          
  48.                 }  
  49.                 return $checkstr;  
  50.         }  
  51.            
  52. /**     函数名称:create_check_image() 
  53.         函数作用:产生一个校验码的图片 
  54.         参    数:$checkcode:校验码字符串 
  55.         返 回 值:返回该图片 
  56. */  
  57.         function create_check_image($checkcode)//产生一个  
  58.         {  
  59.                 $im=imagecreate(65,22);//产生一个图片  
  60.                 $black=imagecolorallocate($im,0,0,0);//背景颜色  
  61.                 $white=imagecolorallocate($im,255,255,255);//前景颜色  
  62.                 $gray=imagecolorallocate($im,200,200,200);  
  63.                 imagefill($im,30,30,$gray);//在$im图像的坐标30,30(图像左上角为0,0)处用$gray 颜色执行区域填充(即与30,30点颜色相同且相邻的点都会被填充)  
  64.                  
  65.                 imagestring($im,5,8,3,$checkcode,$white);//用$white颜色将字符串$checkcode画到$im 所代表的图像的8,3坐标处(这是字符串左上角坐标,整幅图像的左上角为0,0),5是字体大小, 字体只能是1,2,3,4或5,使用内置字体  
  66.                 for ($i=0;$i<120;$i++)  
  67.                 {  
  68.                         $randcolor=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));  
  69.                         imagesetpixel($im,rand()%70,rand()%30,$randcolor);//在$im图象上用$randcolor颜色在(rand()%70,rand()%30)坐标(图像左上角为0,0)上画一个点  
  70.                 }  
  71.                 header("Content-type:image/png");  
  72.                 imagepng($im);//以PNG格式将图像输出到浏览器或文件  
  73.                 imagedestroy($im);//销毁图像$im  
  74.         }  
  75. }  
  76. /* 
  77. $randcode=new RandCheckCode(); 
  78. $checkstring=$randcode->get_code(5,7); 
  79. $image=$randcode->create_check_image($checkstring); 
  80. echo $image; 
  81. */  
  82.   
  83. ?>  

case '5': $str = $str1.$str2; break;

参考链接:
php点击验证码实时刷新的实现代码
php验证码刷新与局部刷新的实现方法

case '6': $str = $str1.$str3; break;

case '7': $str = $str1.$str2.$str3; break;

case '8': $str = $str1.$str2.$str3.$str4.$str5; break;case '9': $str = $str6; break;default : $str = $str1.$str2.$str3.$str4; break;}

$result = ;

if($mode==9){$tmp1 = $length/2;$tmp = explode(.,strlen($str)/2);for ($i = 0 ; $i $tmp1 ; $i++){$result .= Substr($str,mt_rand(0,$tmp[0])*2-$length,2);}}else{for ($i = 0 ; $i $length ; $i++){$result .= $str[mt_rand(0 , strlen($str) - 1)];}}return $result;}

### 生成验证码图片#function createAuthNumImg($randStr,$isGB=false){Header(Content-type: image/PNG);

$im= imagecreate(50,20); $black= ImageColorAllocate($im, 0,0,0); $white= ImageColorAllocate($im, 255,255,255); $gray= ImageColorAllocate($im, 0,100,150); imagefill($im,50,19,$gray); for($i=0;$i80;$i++)# 加入干扰象素 { $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));imagesetpixel($im, rand()%50 , rand()%19 , $randcolor); }

if($isGB!=false) # 采用中文验证码{require_once(GB2312toUTF8.inc.php);$GB2312toUTF = new GB2312toUTF8();imagettftext($im, 10, 5, 5, 16, $white, simsun.ttc, $GB2312toUTF-gb2utf8($randStr));}else imagestring($im, 8, 8, 3, $randStr, $white);# 将验证码绘入图片

ImagePNG($im); ImageDestroy($im);

$_SESSION['chknum'] = $randStr;# 保存验证码}$m =$_GET[m];if(empty($m)) {$m=9;}createAuthNumImg(getRandStr(6,$m),1)?

本文由威尼斯在线注册平台发布于博客热点,转载请注明出处:以下代码的实现

上一篇:php的问题都会显示在phpinfo()页面上,如果采用手工安装则可以通过php.ini自已决定开启哪些扩展 下一篇:供销合作社安插在那伦敦召开的搜寻引擎战略大会(Search
猜你喜欢
热门排行
精彩图文