PHP登錄驗證碼的實現(xiàn)與使用方法

字號:


    本文實例講述了PHP登錄驗證碼的實現(xiàn)與使用方法。分享給大家供大家參考,具體如下:
    1. 新建code.php驗證碼生成文件
    在此之前必須打開php的GD庫,修改php.ini文件的配置,取消extension=php_gd2.dll前面的分號。代碼如下:
    <?php
    session_start();
    //生成驗證碼圖片
    Header("Content-type: image/PNG");
    $im = imagecreate(44,18);
    $back = ImageColorAllocate($im, 245,245,245);
    imagefill($im,0,0,$back); //背景
    srand((double)microtime()*1000000);
    //生成4位數(shù)字
    for($i=0;$i<4;$i++){
    $font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
    $authnum=rand(1,9);
    $vcodes.=$authnum;
    imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
    }
    for($i=0;$i<100;$i++) //加入干擾象素
    {
    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im, rand()p , rand()0 , $randcolor);
    }
    ImagePNG($im);
    ImageDestroy($im);
    $_SESSION['Checknum'] = $vcodes;
    ?>
    2. 顯示驗證碼圖片
    在需要顯示驗證碼的頁面中加入
    <input type="text" name="passcode" >
    <img src="code.php">
    3.判斷并獲取驗證碼的值
    驗證碼是通過第一步驟代碼中的$_SESSION['Checknum'] = $vcodes;賦的值,所以驗證碼的值存在$_SESSION['Checknum']當(dāng)中。在驗證頁面,使用以下代碼
    ...
    session_start();//啟動會話
    $code=$_POST["passcode"];
    if( $code == $_SESSION["Checknum"])
    {
    ...
    }
    即可完成驗證碼登錄。
    運行截圖如下:
    名單
    希望本文所述對大家PHP程序設(shè)計有所幫助。