其實跟之前我發表的漢字驗證碼和英文單詞加數字驗證碼差不多,只是多了一些邏輯的計算而已,我也是每次看到csdn的這個驗證碼好奇,所以自己造了乙個,大體看起來還不錯,也比較符合日常的**提交的驗證。
**如下:
<?php
if(!isset($_session))
$image = imagecreatetruecolor(200, 60);
//設定驗證碼顏色 imagecolorallocate(int im, int red, int green, int blue);
$bgcolor = imagecolorallocate($image,255,255,255);
//區域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區域著色,col 表示欲塗上的顏色
imagefill($image, 0, 0, $bgcolor);
//設定 計算的數字和操作符號
$num = array('零','一','二','三','四','五','六','七','八','九');
//操作符號
$oper = array('+'=>'加','-'=>'減','*'=>'乘');
$fontface = 'simkai.ttf';
$fontcontent = $num[array_rand($num,1)].';';
$fontcontent.= $oper[array_rand($oper,1)].';';
$fontcontent.= $num[array_rand($num,1)].';';
$fontcontent.='等於?';
$arr = explode(';',$fontcontent);
for($i=0;$i<4;$i++)
$s_1 = array_keys($num,$arr[0]);
$s_2 = array_keys($oper,$arr[1]);
$s_3 = array_keys($num,$arr[2]);
//計算結果
switch($s_2[0])
//存到session,作為提交表單的驗證
$_session['code'] = $ret;
//增加干擾元素,設定雪花點
for($i=0;$i<200;$i++)
//設定頭部,image/png
header('content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
測試結果:
希望可以幫助到大家。
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 輸...