本文目錄一覽:
- 1、求助thinkphp3.2.3驗證碼和字體庫使用
- 2、thinkphp的中文驗證碼?那些中文字符串放在哪個文件夾?或者說是怎麼引入的?
- 3、php驗證碼亂碼
- 4、怎麼改dedecms verify.php驗證碼的字體高度和間距
求助thinkphp3.2.3驗證碼和字體庫使用
thinkphp3.2.3驗證碼和字體庫使用表達式1可以是設置循環變量的初值的賦值表達式,也可以是其他表達式。例如:for(sum=0;i=100;i++)sum=sum+i;8) 表達式1和表達式3可以是一個簡單表達式也可以是逗號表達式。for(sum=0,i=1;i=100;i++)sum=sum+i;或:for(i=0,j=100;i=100;i++,j–)k=i+j;9) 表達式2一般是關係表達式或邏輯表達式,但也可是數值表達式或字符表達式,只要其值非零,就執行循環體。例如:for(i=0;(c=getchar())!=’\n’;i+=c);又如:for(;(c=getchar())!=’\n’;)printf(“%c”,c);
thinkphp的中文驗證碼?那些中文字符串放在哪個文件夾?或者說是怎麼引入的?
中文的驗證碼字體放在:ThinkPHP/Library/Think/Verify/zhttfs/中,
$Verify = new \Think\Verify();
// 驗證碼字體使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
$Verify-useZh = true; //開啟中文驗證碼
$Verify-entry();
也可以這樣用:
$Verify = new \Think\Verify();
$Verify-useZh = true;
// 設置驗證碼字符
$Verify-zhSet = ‘們以我到他會作時要動國產的一是工就年階義發成部民可出能方進在了不和有大這’;
$Verify-entry();
php驗證碼亂碼
呵呵,這個程序沒有問題
imagettftext($im,20,0,3,25,$font,”comic.ttf”,$str);
這裡需要一個comic.ttf字體文件,必須放在那個php程序同目錄下
你是不是沒有這個字體文件
如果沒有,可以到系統的C:\Windows\Fonts目錄下拷貝一個(拷個幾百KB大小的就足夠用了)
我試了你的程序,生成的圖片效果不是很好,我以前寫了一個,給你參考下把,雖然也是修改的網上的:
?
//獲取驗證碼圖片模塊
session_start();
//記得去掉下面注釋
if (!isset($_GET[“sid”])||$_GET[“sid”]==””||$_GET[“sid”]!=session_id())die();
Header(“Content-type:image/png”);
//定義header,聲明圖片文件,最好是png,無版權之擾;
//生成新的四位整數驗證碼
//session_id($_GET[“sid”]);
//開啟session;
$authnum_session = ”;
$str = ‘ABCDEFGHIJKMNPQRSTUVWXYZ1234567890’;
//定義用來顯示在圖片上的數字和字母;
$l = strlen($str);
//得到字串的長度;
//循環隨機抽取四位前面定義的字母和數字;
for ($i=1; $i=4; $i++)
{
$num=rand(0,$l-1);
//每次隨機抽取一位數字;從第一個字到該字串最大長度,
//減1是因為截取字符是從0開始起算;這樣34字符任意都有可能排在其中;
$authnum_session.= $str[$num];
//將通過數字得來的字符連起來一共是四位;
}
$_SESSION[“checkCode”]=$authnum_session;
//用session來做驗證也不錯;註冊session,名稱為authnum_session,
//其它頁面只要包含了該圖片
//即可以通過$_SESSION[“checkCode”]來調用
//生成驗證碼圖片,
//srand((double)microtime()*1000000);
mt_srand();
$im = imagecreate(100,40);//圖片寬與高;
//主要用到黑白灰三種色;
$black = ImageColorAllocate($im, mt_rand(0,245),mt_rand(0,200),mt_rand(0,200));
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
//將四位整數驗證碼繪入圖片
imagefill($im,168,30,$gray);
//如不用干擾線,注釋就行了;
$li = ImageColorAllocate($im, 220,220,220);
for ($i=0; $i0; $i++)
{//加入3條幹擾線;也可以不要;視情況而定,因為可能影響用戶輸入;
imageline($im,mt_rand(0,30),mt_rand(0,41),mt_rand(80,90),mt_rand(0,41),$li);
} //字符在圖片的位置;
//imagestring($im, 5, 8, 2, $authnum_session, $white);
// Set the enviroment variable for GD
putenv(‘GDFONTPATH=’ . realpath(‘.’));
// Name the font to be used (note the lack of the .ttf extension)
//$font = ‘mvboli’;
//$font = imageloadfont(“mvboli.ttf”);
//imagestring($im,$font, 8, 2, $authnum_session, $white);
//imagettftext ( $im,20.0, 0, 0, 30, $white,”FELIXTI.TTF”, $authnum_session );
for ($i=0; $i4; $i++)
{
imagettftext ( $im,20.0, mt_rand(0,40)-20, $i*25+3, 30, $white,”FELIXTI.TTF”, substr($authnum_session,$i,1) );
}
for ($i=0; $i90; $i++) //加入干擾象素
{
imagesetpixel($im, mt_rand()%100-2 , mt_rand()%40-2 , $gray);
}
ImagePNG($im);
ImageDestroy($im);
?
同樣這行代碼需要一個字體文件,你可以把它改成你拷過來的的字體文件名
imagettftext ( $im,20.0, mt_rand(0,40)-20, $i*25+3, 30, $white,”FELIXTI.TTF”, substr($authnum_session,$i,1) );
怎麼改dedecms verify.php驗證碼的字體高度和間距
array imagettftext
( resource $image
, float $size
, float $angle
, int $x
, int $y
, int $color
, string $fontfile
, string $text
)
設置size字體大小,默認14,可以設置大點的。
後台修改 圖片大小,注意inc_safe_config.php文件的寬高。
根據x,y設置字體坐標。
@imagettftext($im, $font_size, $c, $y_pos, 19, $c_fontColor, $font_file, $rndstring[$i]);
改19的大小就行了。
原創文章,作者:OLXMW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/317566.html