Authnum.class.php をダウンロードします
コードをコピーします コードは次のとおりです:
session_start();
//画像オブジェクト、幅、高さ、検証コードの長さ
private $im_width; /ランダムな文字列、y 軸の座標値、ランダムな色
private $y;
private $randcolor
//赤、緑、青の背景色、デフォルトはライトグレーです
public $red=238 ;
public $green=238;
public $blue=238;
/**
* オプション設定: 検証コードの種類、干渉点、干渉線、Y 軸ランダム
* 無効にするには false に設定します
**/
// デフォルトは大文字と小文字の組み合わせで、1 2 3 は小文字、大文字、数字を表します。それぞれ
public $ext_num_type='' ;
public $ext_pixel = false; //干渉点
public $ext_rand_y= true; =4,$im_width='', $im_height=25) {
// 検証コードの長さ、画像の幅、高さはクラスをインスタンス化するときに必要なデータです
$this->len = $len = $len; * 15;
$this->im_width = $im_width;
$this->im = imagecreate($im_width,$im_height);背景色、デフォルトはライトグレーの背景です
function set_bgcolor () {
imagecolorallocate($this->im,$this->red,$this->green,$this->blue)
}
// 任意の数値のランダムなコードを取得します
function get_randnum () {
$an1 = 'abcdefghijklmnopqrstuvwxyz';
$an3 = '0123456789';数値の種類 == '') $str = $an1.$an2 .$an3;
if ($this->ext_num_type == 1) $str = $an1
if ($this->ext_num_type == 2) $str = $an2;
if ($this->ext_num_type == 3) $str = $an3;
for ($i len; $i++) {
$start = rand (1,strlen($str) - 1) ;
$randnum .= substr($str,$start,1)
}
$this->randnum = $randnum[an] = $this; ->randnum
}
// 検証コード画像 Y 軸を取得
function get_y () {
if ($this->ext_rand_y) $this->y = rand(5, $this->im_height/ 5);
else $this->y = $this->im_height / 4 ;
// ランダムな色を取得する
function get_randcolor () {
$this->randcolor = imagecolorallocate($this-> ;im,rand(0,100),rand(0,150) ,rand(0,200));
}
//干渉点を追加
function set_ext_pixel () {
if ($this->ext_pixel) {
for($i = 0; $i $this->get_randcolor();
imagesetpixel($this->im, rand()%100, $this->randcolor );
}
}
}
// 干渉ラインを追加
function set_ext_line () {
if ($this->ext_line) {
for($j = 0; $j < 2; $j++){
$rand_x = rand(2, $this->im_width);
$rand_y = rand(2, $this->im_height);
$rand_x2 = rand(2, $this->im_width); = rand(2, $this->im_height) ;
$this->get_randcolor();
imageline($this->im, $rand_x, $rand_y, $rand_x2, $rand_y2, $this->; randcolor);
}
}
}
/* *検証コード画像を作成します:
* キャンバスを作成します (__construct 関数)
* キャンバスの背景を設定します ($this->set_bgcolor();)
* ランダムな文字列を取得します ($this->get_randnum ();)
* 画像にテキストを書き込みます (imagestring 関数)
* 干渉点/干渉線を追加します ($this->set_ext_line(); $this->set_ext_pixel();)
* 画像を出力します
**/
function create () {
$this->get_randnum (); 0; $i len ; $i++){
$font = rand(4,6); $this->im_width + rand (1, $this->len);
$this->get_randcolor();
imagestring($font, $x, $this- >y, substr($this->randnum , $i ,1), $this->randcolor)
$this->set_ext_line();
$this->set_ext_pixel(); header("content-type:image/png") ;
imagepng($this->im); //画像リソースを解放します
}//終了クラス
/**検証コード クラスを使用するメソッド:
* $an = new Authnum (検証コードの長さ、ピクチャの幅、ピクチャの高さ)
* パラメータなしでインスタンス化された場合、デフォルトは 60*25 サイズの 4 桁の通常の検証コード ピクチャです。
* フォームページ上の検証コードを検出するメソッド。$_SESSION[an] が $_POST[検証コード テキスト ボックス ID] と等しいかどうかを比較します。
* オプションの設定:
* 1. 検証コードの種類: $an->ext_num_type= 1; 値 1 は小文字タイプ、2 は大文字タイプ、3 は数値タイプです
* 2. 干渉点: $an->ext_pixel = false; 値が false は干渉点が追加されないことを意味します
* 3. 干渉線: $an->ext_line = false; false の値は、干渉ラインが追加されないことを意味します
* 4. Y 軸のランダム化: $an->ext_rand_y = false;画像はサポートされていません
* 5. 画像の背景: $red $green $blue を変更します 3 つのメンバー変数の値で十分です
**/
$an = new Authnum();
$an->ext_pixel = true; ->ext_line = false; //干渉ライン
$an->gt;green = 238; ;
http://www.bkjia.com/PHPjc/322609.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/322609.html技術記事 Authnum.class.php コードをダウンロードしてコピーします。 コードは次のとおりです。 ?php session_start(); class Authnum { //画像オブジェクト、幅、高さ、検証コードの長さ private $im private $im_width;