片段 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 輸...