ホームページ > バックエンド開発 > PHPチュートリアル > PHP 完全な検証コード コード、PHP 検証コード_PHP チュートリアル

PHP 完全な検証コード コード、PHP 検証コード_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:55:43
オリジナル
776 人が閲覧しました

php 完全な検証コード code,php 検証コード

<?<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>
ログイン後にコピー

主なポイント: 1. session_start(); の前に宣言がない場合は、宣言する必要があります。 2. cmf にフォントを入力することで、フォントを独自の定義済みフォントフォルダーにダウンロードできます。 sess_name]はい $_POST を通じてユーザーが入力した確認コードを取得して比較します。

http://www.bkjia.com/PHPjc/1115251.html

tru​​ehttp://www.bkjia.com/PHPjc/1115251.html技術記事 PHP 完全な検証コード コード、PHP 検証コード? php require_once 'string.func.php'; // GD ライブラリを使用して検証コードを作成します/* * *検証テキストを追加します* @param int $type * @param int $length */ functi ...
関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート