php生成各種驗證碼

2021-09-08 07:02:00 字數 4289 閱讀 2164

片段 1

片段 2

片段 3

index.html

```驗證碼:

驗證碼:

驗證碼:

驗證碼:

驗證碼:

code.php

<?php

session_start();

$act = isset($_get['act']) ? $_get['act'] : "";

if ($act == "char")elseif ($act == "math")elseif ($act == "num")elseif ($act == "zh")else

function getcharcode($num,$w,$h)

//將生成的驗證碼寫入session,備驗證頁面使用

$_session["helloweba_char"] = $code;

//建立,定義顏色值

header("content-type: image/png");

$im = imagecreate($w, $h);

$black = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));

$gray = imagecolorallocate($im, 118, 151, 199);

$bgcolor = imagecolorallocate($im, 235, 236, 237);

//畫背景

imagefilledrectangle($im, 0, 0, $w, $h, $bgcolor);

//畫邊框

imagerectangle($im, 0, 0, $w-1, $h-1, $gray);

//imagefill($im, 0, 0, $bgcolor);

//在畫布上隨機生成大量點,起干擾作用;

for ($i = 0; $i < 80; $i++)

//將字元隨機顯示在畫布上,字元的水平間距和位置都按一定波動範圍隨機生成

$strx = rand(3, 8);

for ($i = 0; $i < $num; $i++)

imagepng($im);

imagedestroy($im);

}function getmathcode($w, $h)

imagestring($im, 5, 5, 4, $num1, $red);

imagestring($im, 5, 30, 3, "+", $red);

imagestring($im, 5, 45, 4, $num2, $red);

imagestring($im, 5, 70, 3, "=", $red);

imagestring($im, 5, 80, 2, "?", $white);

header("content-type: image/png");

imagepng($im);

imagedestroy($im);}function getnumcode($num,$w,$h)

//4位驗證碼也可以用rand(1000,9999)直接生成

//將生成的驗證碼寫入session,備驗證頁面使用

$_session["helloweba_num"] = $code;

//建立,定義顏色值

header("content-type: image/png");

$im = imagecreate($w, $h);

$black = imagecolorallocate($im, 0, 0, 0);

$gray = imagecolorallocate($im, 200, 200, 200);

$bgcolor = imagecolorallocate($im, 255, 255, 255);

imagefill($im, 0, 0, $gray);

//畫邊框

imagerectangle($im, 0, 0, $w-1, $h-1, $black);

//隨機繪製兩條虛線,起干擾作用

$style = array (

$black,

$black,

$black,

$black,

$black,

$gray,

$gray,

$gray,

$gray,

$gray

);imagesetstyle($im, $style);

$y1 = rand(0, $h);

$y2 = rand(0, $h);

$y3 = rand(0, $h);

$y4 = rand(0, $h);

imageline($im, 0, $y1, $w, $y3, img_color_styled);

imageline($im, 0, $y2, $w, $y4, img_color_styled);

//在畫布上隨機生成大量黑點,起干擾作用;

for ($i = 0; $i < 80; $i++)

//將數字隨機顯示在畫布上,字元的水平間距和位置都按一定波動範圍隨機生成

$strx = rand(3, 8);

for ($i = 0; $i < $num; $i++)

imagepng($im);

imagedestroy($im);

/

for($i=0;$i<15;$i++)

for($i=0;$i<255;$i++)

/***********內容*********/

for($i=0;$i<4;$i++)

imagepng($im);

imagedestroy($im);

}function getauthimage($text) $distortion_im = imagecreatetruecolor ($im_x, $im_y);

imagefill($distortion_im, 16, 13, $buttum_c);

for ( $i=0; $i

//加入干擾象素;

$count = 160;//干擾畫素的數量

for($i=0; $i

$rand = mt_rand(5,30);

$rand1 = mt_rand(15,25);

$rand2 = mt_rand(5,10);

for ($yy=$rand; $yy<=+$rand+2; $yy++)

$py=$y*$rand2;

imagesetpixel($distortion_im, $px+80, $py+$yy, $text_c);
}

}

//設定檔案頭;

header("content-type: image/jpeg");

//以png格式將影象輸出到瀏覽器或檔案;

imagepng($distortion_im);

//銷毀一影象,釋放與image關聯的記憶體;

imagedestroy($distortion_im);

imagedestroy($im);

}function make_rand($length="32")

return $result;

}

check_code.php

<?php

session_start();

$action = $_get['act'];

$code = trim($_post['code']);

if($action=='num')

}elseif($action=='char')

}elseif($action=='zh')

}elseif($action=='gg')

}elseif($action=='math')

}else/", toutf8, $str);

return mb_convert_encoding($text, $charcode, 'utf-8');

}function toutf8($ar)

elseif ($val < 0x800) else

}return $c;

}?>

posted @

2018-12-30 15:54

棲息地 閱讀(

...)

編輯收藏

php生成驗證碼

header content type image gif 初始化 border 0 是否要邊框 1要 0不要 how 4 驗證碼位數 w how 15 寬度 h 20 高度 fontsize 5 字型大小 alpha abcdefghijkmnopqrstuvwxyz 驗證碼內容1 字母 numb...

php 生成驗證碼

驗證碼個數 num 4 驗證碼寬度 width 80 驗證碼高度 height 20 驗證碼 注意是字串 code 生成驗證碼 for i 0 i num i 驗證碼儲存到session中 session start session verifycode code 建立影象 image imagec...

php 生成驗證碼

che.php session start im imagecreatetruecolor 100,30 設定顏色 bg imagecolorallocate im,0,0,0 背景色 te imagecolorallocate im,255,255,255 字型顏色 for i 0 i 4 i 輸...