随机验证码 php
<?php
//設(shè)置session,必須處于腳本最頂部
session_start();
$image = imagecreatetruecolor(100, 30); //1>設(shè)置驗證碼圖片大小的函數(shù) 顏色格外清晰
//設(shè)置驗證碼顏色 imagecolorallocate(int im, int red, int green, int blue);
$bgcolor = imagecolorallocate($image,255,255,255); //#ffffff 驗證碼背景色 白色
//區(qū)域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區(qū)域著色,col 表示欲涂上的顏色
imagefill($image, 0, 0, $bgcolor);
//設(shè)置變量
$captcha_code = "";
//生成隨機數(shù)字
for($i=0;$i<4;$i++){
//設(shè)置字體大小
$fontsize = 6;
//設(shè)置字體顏色,隨機顏色
$fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120)); //0-120深顏色 rand 隨機函數(shù)
//設(shè)置數(shù)字
$fontcontent = rand(0,9);
//連續(xù)定義變量
$captcha_code .= $fontcontent;
//設(shè)置坐標(biāo)
$x = ($i*100/4)+rand(5,10);
$y = rand(5,10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
//存到session
$_SESSION['authcode'] = $captcha_code;
//增加干擾元素,設(shè)置雪花點
for($i=0;$i<200;$i++){
//設(shè)置點的顏色,50-200顏色比數(shù)字淺,不干擾閱讀
$pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200));
//imagesetpixel — 畫一個單一像素
imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
}
//增加干擾元素,設(shè)置橫線
for($i=0;$i<4;$i++){
//設(shè)置線的顏色
$linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220));
//設(shè)置線,兩點一線
imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor);
}
//設(shè)置頭部,image/png
header('Content-Type: image/png');
//imagepng() 建立png圖形函數(shù)
imagepng($image);
//imagedestroy() 結(jié)束圖形函數(shù) 銷毀$image
imagedestroy($image);
//設(shè)置session,必須處于腳本最頂部
session_start();
$image = imagecreatetruecolor(100, 30); //1>設(shè)置驗證碼圖片大小的函數(shù) 顏色格外清晰
//設(shè)置驗證碼顏色 imagecolorallocate(int im, int red, int green, int blue);
$bgcolor = imagecolorallocate($image,255,255,255); //#ffffff 驗證碼背景色 白色
//區(qū)域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區(qū)域著色,col 表示欲涂上的顏色
imagefill($image, 0, 0, $bgcolor);
//設(shè)置變量
$captcha_code = "";
//生成隨機數(shù)字
for($i=0;$i<4;$i++){
//設(shè)置字體大小
$fontsize = 6;
//設(shè)置字體顏色,隨機顏色
$fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120)); //0-120深顏色 rand 隨機函數(shù)
//設(shè)置數(shù)字
$fontcontent = rand(0,9);
//連續(xù)定義變量
$captcha_code .= $fontcontent;
//設(shè)置坐標(biāo)
$x = ($i*100/4)+rand(5,10);
$y = rand(5,10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
//存到session
$_SESSION['authcode'] = $captcha_code;
//增加干擾元素,設(shè)置雪花點
for($i=0;$i<200;$i++){
//設(shè)置點的顏色,50-200顏色比數(shù)字淺,不干擾閱讀
$pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200));
//imagesetpixel — 畫一個單一像素
imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
}
//增加干擾元素,設(shè)置橫線
for($i=0;$i<4;$i++){
//設(shè)置線的顏色
$linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220));
//設(shè)置線,兩點一線
imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor);
}
//設(shè)置頭部,image/png
header('Content-Type: image/png');
//imagepng() 建立png圖形函數(shù)
imagepng($image);
//imagedestroy() 結(jié)束圖形函數(shù) 銷毀$image
imagedestroy($image);
轉(zhuǎn)載于:https://www.cnblogs.com/xinxueyou/p/8085142.html
總結(jié)
- 上一篇: Storm Trident API
- 下一篇: 零元学Expression Blend