PHP中怎么實現(xiàn)中文漢字驗證碼

PHP中怎么實現(xiàn)中文漢字驗證碼,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)公司長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為全椒企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,全椒網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1.算式驗證碼:

session_start();

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

$num1=mt_rand(0,9);//第一位數(shù)

$num2=mt_rand(1,9);//第二位數(shù)

$type_str="+-*";//方法字符串集合

$type=substr($type_str,rand(0,2),1);//隨機方法

$change=mt_rand(1,3);

if($change==1){

$code="$num1$type$num2=";

$result="\$verifyCode=$num1$type$num2;";

eval($result);

$_SESSION['authnum_session']=$verifyCode;

}elseif($change==2){

$result="\$verifyCode=$num1$type$num2;";

eval($result);

$code=$num1.$type."_=".$verifyCode;

$_SESSION['authnum_session']=$num2;

}elseif($change==3){

$result="\$verifyCode=$num1$type$num2;";

eval($result);

$code="_".$type.$num2."=".$verifyCode;

$_SESSION['authnum_session']=$num1;

}

$im=imagecreate(68,28);

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

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

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

$red=imagecolorallocate($im,255,0,0);

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

imagestring($im,5,10,8,$code,$black);

for($i=0;$i<70;$i++){>

PHP中文漢字驗證碼怎么實現(xiàn)

session_start();

$ch_str="的一是在了不和有大這主中人上為們地個用工時要動國產(chǎn)以我到他會作來分生對于學(xué)下級就年階義發(fā)成部民

$len=mb_strlen($ch_str,"utf-8");//漢字長度

$str=array();

for($i=0;$i<4;$i++){   $pos=mt_rand(0,$len-5);//開始位置   $str[]=mb_substr($ch_str,$pos,1,"utf-8");   }   $authnum_session=implode("",$str);   $_SESSION['authnum_session']=$authnum_session;//記錄到session   Header("Content-type:image/PNG");   //圖片的長和高   $image_x=100;   $image_y=50;   $im=imagecreate($image_x,$image_y);   //這里取圖片底色為白色   $bkg=ImageColorAllocate($im,255,255,255);   //顯示的字體樣式,這個要把文件放到對應(yīng)的目錄中,假如你沒有文件就去window的字體文件中找一個吧。   $fnt="simhei.ttf";   //為圖像分配一些顏色   $white=ImageColorAllocate($im,234,185,95);   //在圖片上畫橢圓弧,指定下坐標(biāo)點   imagearc($im,150,8,20,20,75,170,$white);   imagearc($im,180,7,50,30,75,175,$white);   //在圖片上畫一條線段,指定下坐標(biāo)點   imageline($im,20,20,180,30,$white);   imageline($im,20,18,170,50,$white);   imageline($im,25,50,80,50,$white);   //亂點的數(shù)量   $noise_num=3000;   $line_num=50;   //各種混亂字符的顏色   $rectangle_color=imagecolorallocate($im,0xAA,0xAA,0xAA);   $noise_color=imagecolorallocate($im,0x00,0x00,0x00);   $font_color=imagecolorallocate($im,0x00,0x00,0x00);   for($i=0;$i<$noise_num;$i++)   {   //在一個坐標(biāo)點上畫一個單一像素,這個點上面定義了,是黑色的。   //imagesetpixel($im,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);   }   for($i=0;$i<$line_num;$i++)   {   $line_color=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));   //在兩個坐標(biāo)點間畫一條線,顏色在上面定義   imageline($im,mt_rand(0,$image_x),mt_rand(0,$image_y),mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color);   }   for($i=0;$i<4;$i++)>

注意:

中文漢字驗證碼單獨執(zhí)行,然后獲取session會發(fā)現(xiàn)驗證碼和session內(nèi)容不一致。但是在img標(biāo)簽中src屬性中引用這個中文漢字驗證碼文件時,然后獲取session,這時兩者內(nèi)容時一致的。

關(guān)于PHP中怎么實現(xiàn)中文漢字驗證碼問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

文章題目:PHP中怎么實現(xiàn)中文漢字驗證碼
文章起源:http://www.muchs.cn/article26/gehdcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站、微信小程序、網(wǎng)站設(shè)計公司、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)