首页 > php代码 > php 图片验证码

php 图片验证码

php验证码程序   验证码 代码 php php 图片验证码

<?php
/*
@date           20080514
@author        hluan
//session_start();
class icode
{
    function __construct(){
      header('Content-Type:image/png');
    }
    function __destruct(){
      imagedestroy($png);
    }
    function getcode($len,$type){
      switch ($type){
       case 1;
        $str = "1234567890";
        break;
       case 2;
        $str = "abcdefghijklmnopqrstuvwxyz";
        break;
       case 0;
        $str = "1234567890abcdefghijklmnopqrstuvwxyz";
        break;
      }
      $result = "";
      $length = strlen($str) - 1;
      $num = 0;
      for ($i=0;$i<$len;$i++){
       $num = rand(0,$length);
       $a = $str[$num];
       $result = $result.$a;
      }
        /*Before using it,you should use session_start()*/
        $_SESSION['icode'] = $result; //Store in session.
        //echo "session:".$_SESSION['icode'];
        //die();
        $png = imagecreate(60, 30);
        $white = imagecolorallocate($png, 255, 255, 255); //background
        $red = imagecolorallocate($png, 255, 0, 0);
        $blue = imagecolorallocate($png, 0, 0, 255);
        $brown = imagecolorallocate($png, 100, 0, 0);
        $black = imagecolorallocate($png, 0, 0, 0); //Identifying Code
        imagefill($png, 0, 0, $white);
        $k = rand(0, 3);
        if (0 == $k) {
            for ($n = 0; $n < 60; $n++) {
                $y = 15 * sin($n / 30 * pi());
                imagesetpixel($png, $n, 15 + $y, $red);
            }
        } else if (1 == $k) {
            for ($n = 0; $n < 60; $n++) {
                $y = 15 * cos($n / 60 * pi());
                imagesetpixel($png, $n, 15 + $y, $red);
            }
        } else if (2 == $k) {
            for ($n = 0; $n < 60; $n++) {
                $y = 15 * sin($n / 45 * pi());
                imagesetpixel($png, $n, 15 + $y, $brown);
            }
        } else if (3 == $k) {
            for ($n = 0; $n < 60; $n++) {
                $y = 15 * cos($n / 30 * pi());
                imagesetpixel($png, $n, 15 + $y, $brown);
            }
        }
        for ($k = 0; $k < 10; $k++) {
            $i = rand(3, 60); //width
            $j = rand(3, 15); //height
            imageline($png, $i - 3, $j - 3, $i, $j, $black);
        }
        imagestring($png, 5, 3, 5, $result, $blue);
        $icode = imagepng($png);
        return $icode;
    }
}
/*测试代码
$icode = new icode();
$icp = $icode->getcode(6,0);
echo $icp;
*/


本文链接:http://www.phprm.com/code/5c608a29accb28176dda7ea2f6ce1d4d.html

收藏随意^^请保留教程地址.

标签:none

发表留言