Home  >  Article  >  Backend Development  >  php complete verification code code php generate verification code php SMS verification code php verification code code

php complete verification code code php generate verification code php SMS verification code php verification code code

WBOY
WBOYOriginal
2016-07-29 08:55:211832browse

<?<span>php 
</span><span>require_once</span> 'string.func.php'<span>;
</span><span>//</span><span>通过GD库做验证码</span><span>/*</span><span>*
 *添加验证文字
 * @param int $type
 * @param int $length
</span><span>*/</span><span>function</span> buildRandomString(<span>$type</span>=1,<span>$length</span>=4<span>){
    </span><span>$row</span>=''<span>;
    </span><span>if</span>(<span>$type</span>==1<span>){
        </span><span>$row</span>=<span>join</span>('',<span>range</span>(0, 9<span>));
    }</span><span>else</span><span>if</span>(<span>$type</span>==2<span>){
        </span><span>$row</span>=<span>join</span>('', <span>array_merge</span>(<span>range</span>('a','z'),<span>range</span>('A', 'Z'<span>)));
    }</span><span>else</span><span>if</span>(<span>$type</span>==3<span>){
        </span><span>$row</span>=<span>join</span>('', <span>array_merge</span>(<span>range</span>('a','z'),<span>range</span>('A', 'Z'),<span>range</span>(0, 9<span>)));
    };
    </span><span>$row</span>=<span>str_shuffle</span>(<span>$row</span><span>);
   
    </span><span>$row</span>=<span>substr</span>(<span>$row</span>,0,<span>$length</span><span>);
    </span><span>return</span><span>$row</span><span>;
}
</span><span>/*</span><span>*
 * 生成缩略图
 * @param int $type //包含数字或者英文
 * @param int $length 多少个字符
 * @param int $pixel 干扰小点的密度
 * @param int $dst_h 干扰线的密度
 * @param string //验证码在$_SESSION中的名字
 </span><span>*/</span><span>function</span> verifyImage(<span>$type</span>=1,<span>$length</span>=4,<span>$pixel</span>=0,<span>$line</span>=0,<span>$sess_name</span> = "verify"<span>){
    </span><span>//</span><span>session_start();
    //创建画布</span><span>$width</span> = 100<span>;
    </span><span>$height</span> = 40<span>;
    </span><span>$image</span> = imagecreatetruecolor ( <span>$width</span>, <span>$height</span><span> );
    </span><span>$white</span> = imagecolorallocate ( <span>$image</span>, 255, 255, 255<span> );
    </span><span>$black</span> = imagecolorallocate ( <span>$image</span>, 0, 0, 0<span> );
    </span><span>//</span><span>用填充矩形填充画布</span>    imagefilledrectangle ( <span>$image</span>, 1, 1, <span>$width</span> - 2, <span>$height</span> - 2, <span>$white</span><span> );
    </span><span>$chars</span> = buildRandomString ( <span>$type</span>, <span>$length</span><span> );
    </span><span>$_SESSION</span> [<span>$sess_name</span>] = <span>$chars</span><span>;
    </span><span>//</span><span>$fontfiles = array ("MSYH.TTF", "MSYHBD.TTF", "SIMLI.TTF", "SIMSUN.TTC", "SIMYOU.TTF", "STZHONGS.TTF" );</span><span>$fontfiles</span> = <span>array</span> ("SIMKAI.TTF"<span> );
    </span><span>//</span><span>由于字体文件比较大,就只保留一个字体,如果有需要的同学可以自己添加字体,字体在你的电脑中的fonts文件夹里有,直接运行输入fonts就能看到相应字体</span><span>for</span>(<span>$i</span> = 0; <span>$i</span> < <span>$length</span>; <span>$i</span> ++<span>) {
        </span><span>$size</span> = <span>mt_rand</span> ( 14, 18<span> );
        </span><span>$angle</span> = <span>mt_rand</span> ( - 15, 15<span> );
        </span><span>$x</span> = 5 + <span>$i</span> * <span>$size</span><span>;
        </span><span>$y</span> = <span>mt_rand</span> ( 20, 26<span> );
        </span><span>$fontfile</span> = "../fonts/" . <span>$fontfiles</span> [<span>mt_rand</span> ( 0, <span>count</span> ( <span>$fontfiles</span> ) - 1<span> )];
        </span><span>$color</span> = imagecolorallocate ( <span>$image</span>, <span>mt_rand</span> ( 50, 90 ), <span>mt_rand</span> ( 80, 200 ), <span>mt_rand</span> ( 90, 180<span> ) );
        </span><span>$text</span> = <span>substr</span> ( <span>$chars</span>, <span>$i</span>, 1<span> );
        imagettftext ( </span><span>$image</span>, <span>$size</span>, <span>$angle</span>, <span>$x</span>, <span>$y</span>, <span>$color</span>, <span>$fontfile</span>, <span>$text</span><span> );
    }
    </span><span>if</span> (<span>$pixel</span><span>) {
        </span><span>for</span>(<span>$i</span> = 0; <span>$i</span> < 50; <span>$i</span> ++<span>) {
            imagesetpixel ( </span><span>$image</span>, <span>mt_rand</span> ( 0, <span>$width</span> - 1 ), <span>mt_rand</span> ( 0, <span>$height</span> - 1 ), <span>$black</span><span> );
        }
    }
    </span><span>if</span> (<span>$line</span><span>) {
        </span><span>for</span>(<span>$i</span> = 1; <span>$i</span> < <span>$line</span>; <span>$i</span> ++<span>) {
            </span><span>$color</span> = imagecolorallocate ( <span>$image</span>, <span>mt_rand</span> ( 50, 90 ), <span>mt_rand</span> ( 80, 200 ), <span>mt_rand</span> ( 90, 180<span> ) );
            imageline ( </span><span>$image</span>, <span>mt_rand</span> ( 0, <span>$width</span> - 1 ), <span>mt_rand</span> ( 0, <span>$height</span> - 1 ), <span>mt_rand</span> ( 0, <span>$width</span> - 1 ), <span>mt_rand</span> ( 0, <span>$height</span> - 1 ), <span>$color</span><span> );
        }
    }
    </span><span>header</span> ( "content-type:image/gif"<span> );
    imagegif ( </span><span>$image</span><span> );
    imagedestroy ( </span><span>$image</span><span> );
}</span>

Main points: 1. If there is no declaration before session_start();, you need to declare it; 2. Fonts can be downloaded to your own defined fonts folder by entering fonts in cmf; 3. $_SESSION [$sess_name] You can get the verification code entered by the user through $_POST for comparison.

The above introduces the complete verification code code of PHP, including PHP and verification code. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn