php?產生驗證碼解決思路

來源:互聯網
上載者:User
php?產生驗證碼
哪位大哥分享下代碼
------解決思路----------------------
session_start();
$dict = str_split('abcdefghijklmnopqrstuv0123456789');
shuffle($dict);
$_SESSION['word'] = join('', array_slice($dict, -4));

$im = imagecreate(100, 30);
$bg = imagecolorallocate($im, 255, 255, 255);
$char = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 5, 10, 10, $_SESSION['word'], $char);
imagegif($im);

------解決思路----------------------

session_start();
$checkCode="";
for($i=0;$i<4;$i++){
$checkCode .=substr('abcdefghijklmnopqrstuvwxyz0123456789', rand(0,35), 1); // $checkCode.=dechex(rand(1,15));
}
//講隨機驗證碼儲存到session中
$_SESSION['myCheckCode']=$checkCode;
//建立圖片,並把隨機數畫上去
$img=imagecreatetruecolor(100,30);
//背景預設就是黑色
//你可以指定背景顏色
$bgcolor=imagecolorallocate($img,0,0,0);
imagefill($img,0,0,$bgcolor);
//建立新的顏色
$white=imagecolorallocate($img,255,255,255);
$blue=imagecolorallocate($img,0,0,255);
$red=imagecolorallocate($img,255,0,0);
$green=imagecolorallocate($img,255,0,0);

//畫出幹擾線段
for($i=0;$i<20;$i++){
//更好的方法是顏色隨機
imageline($img,rand(0,110),rand(0,30),rand(0,110),rand(0,30),imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255)));

}
//畫出噪點,自己畫.

//把四個隨機值畫上去
imagestring($img,rand(1,5),rand(2,80),rand(2,10),$checkCode,$white);

//如果要使用中文
//array imagefttext ( string $font_file , string $text [, array $extrainfo ] )
//imagettftext($img,15,10,20,25,$white,"STXINWEI.TTF","北京你好");
//輸出
header("content-type: image/png");
imagepng($img);

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.