DEDECMS修改驗證碼為數字和小寫字母組合
來源:程序員人生 發布時間:2014-01-18 00:08:28 閱讀次數:2422次
輸入字母驗證碼,俺覺得特煩,非凡還要輸入大寫字母。于是找到文件并修改成數字驗證碼。
修改文件 驗證碼文件地位
includevalidateimg.php
找到
for($i=0;$i<4;$i++)
{
$rndstring .= chr(mt_rand(65,90));
}
改成
for($i=0;$i<4;$i++)
{
$rndstring .= chr(mt_rand(48,57));
}
這個函數是產生隨機字符,看見里面的數字沒有,它就是要產生字符鍵盤碼的范疇,原來的是
mt_rand(65,90),這個65到90是大寫字母A到Z的鍵盤碼。
現在修改為(48,57) 表示0到9的鍵盤碼:mt_rand(48,57)。
按照這個理論,估計能產生中文吧。
還有這個文件里面的
$bgcolor = ImageColorAllocate($im, 248,212,20);
$black = ImageColorAllocate($im, 0,0,0);
是設定生成圖片的背景顏色和文字顏色的。三個數字表示 顏色的 紅,綠,藍色值。范疇為0到255,
比如
0,0,0 表示 黑色,
255,0,0 表示純紅,
0,255,0 表示純綠,
0,0,255 表示純藍。
255.255.255 表示白。
修改成統一字體
for($i=0;$i<$rndcodelen;$i++)
{
imagestring($im, mt_rand(2,5), $i*10+6, mt_rand(2,5), $rndstring[$i], $black);
}
改成
for($i=0;$i<$rndcodelen;$i++)
{
imagestring($im, 3, $i*10+6, mt_rand(2,5), $rndstring[$i], $black);
}
也就是 imagestring里面第二個參數,修改它為1到5之間的固定數字,這里我覺得修改成3比較漂亮。
參數說明:
int imagestring ( resource image, int font, int x, int y, string s, int col)
imagestring() 用 col 顏色將字符串 s 畫到 image 所代表的圖像的 x,y 座標處(圖像的左上角為 0, 0)。假如 font 是 1,2,3,4 或 5,則使用內置字體。
假如不想讓他上下參差,就把坐標y改成固定值3就行了,也就是把 mt_rand(2,5)改成3
驗證碼為數字加小寫字母組合方式的實現
//獲取隨機字符
$rndstring = "";
for($i=0;$i<2;$i++){
$rndstring .= chr(mt_rand(48,57));
$rndstring .= chr(mt_rand(97,122));
}
這樣就可以實現數字+小寫字母了
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈