本文章利用三個文件來簡單的講了一下關於php中怎麼去應用中文驗證碼,中文因為是漢字可能出現亂碼所以我們就定義了一個文件來專門處理,有需要的朋友可以參考下。 代碼如下 復制代碼
<?php
/*
* 文件:chinesechar.php
* 作用:漢字數據儲存
*/
$ChineseChar = array("人","出","來","友","學","孝","仁","義","禮","廉","忠","國","中","易","白","者","火 ","土","金","木","雷","風","龍","虎","天","地", "生","暈","菜","鳥","田","三","百","錢","福 ","愛","情","獸","蟲","魚","九","網","新","度","哎","唉","啊","哦","儀","老","少","日", "月 ","星");
?>
<?php
/*
* 文件:check.php
* 作用:驗證
*/
session_start();
$errorMSG = '';
//驗證用戶輸入是否和驗證碼一致
if(!is_null($_POST['check']))
{
if (strcasecmp($_SESSION['code'],$_POST['code'])==0)
$errorMSG = "<p style="font-size:12px;color:#009900">驗證成功!</p>";
else
$errorMSG = "<p style="font-size:12px;color:#FF0000">驗證失敗!</p>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<?php
if($errorMSG){
echo $errorMSG;
}
?>
<form action=<?php echo $_SERVER['PHP_SELF']?> method=post>
請輸入驗證碼:<input type="text" name="code" style="width:
80px"><img src="code.php">
<br>
<input type="submit" name="check" value="提交驗證碼">
</form>
</body>
</html>
<?php
/*
* 文件:code.php
* 作用:驗證碼生成
* 特注:由 沒牙的草 指導 版權所有轉載注明出處!有付出才會有收獲!
*/
include_once("chinesechar.php");
session_start();
// 設置 content-type
header("Content-type: image/png");
// 創建圖片
$im = imagecreatetruecolor(120, 30);
// 創建顏色
$fontcolor = imagecolorallocate($im, 255, 255, 255);
$bg = imagecolorallocate($im, 0, 0, 0);
// 設置文字
for($i=0;$i<4;$i++) $text .= $ChineseChar[(array_rand($ChineseChar))];
$_SESSION['code'] = $text;
// 設置字體
$font = 'simkai.ttf';
// 添加文字
imagettftext($im, 18, 0, 11, 21, $fontcolor, $font, iconv("GB2312","UTF-8",$text));
// 輸出圖片
imagepng($im);
imagedestroy($im);
?>
如果想把上面的程序改成英文數字,只要在chinesechar.php 裡面的數組中文改成數字或字母就KO了。