php验证码

来源:互联网 发布:在日本做生意知乎 编辑:程序博客网 时间:2024/06/06 23:16
/** * _code()是验证码函数 * @access public * @param int $_width 表示验证码的长度 * @param int $_height 表示验证码的高度 * @param int $_rnd_code 表示验证码的位数 * @param bool $_flag 表示验证码是否需要边框 * @return void 这个函数执行后产生一个验证码 */function _code($_width = 75,$_height = 25,$_rnd_code = 4,$_flag = false){//    session_start();    $img =   imagecreatetruecolor($_width, $_height);    $black = imagecolorallocate($img, 0x00, 0x00, 0x00);    $green = imagecolorallocate($img, 0x00, 0xFF, 0x00);    $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);    $red = imagecolorallocate($img, 0xFF, 0x00, 0x00);    imagefill($img,0,0,$white); //�����������֤��    $code = '';    srand(microtime()*100000);    for($i = 0; $i < 4; $i++) {        //$code .= rand(0,1)? rand(0,9): (rand(0,1)?strtoupper( dechex(rand(10,15)) ):strtolower(dechex(rand(10,15)) ));        //$code .= rand(0,9);        $code .= dechex(rand(0, 15));    }    $_SESSION['code'] = $code;    if (!$_flag){        imagerectangle($img, 0, 0, $_width-1, $_height-1, $black);    }    //随即画出6个线条    for ($i=0;$i<6;$i++) {        $_rnd_color = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));        imageline($img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);    }    //随即雪花    for ($i=0;$i<mt_rand(0,100);$i++) {        $_rnd_color = imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));        imagestring($img,1,mt_rand(1,$_width),mt_rand(1,$_height),'*',$_rnd_color);    }    //绘制验证码    for ($i=0;$i<strlen($_SESSION['code']);$i++) {        $_rnd_color = imagecolorallocate($img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));        imagestring($img,5,$i*$_width/$_rnd_code+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color);    }    header('Content-Type:image/jpeg');    imagepng($img);    imagedestroy($img);}
原创粉丝点击