tp5 確認コードクラス ファイルは extend/other/Captcha.php にあります<br>
<br>
<br>
<br>
//コントローラーで検証コードを取得します<br>
パブリック関数 get_captcha(){ <br>
// memcheck を使用してセッションをセットアップします <br>
Session::init(['prefix'=> 'wll_','type'=> '','auto_start' => true]);<br>
$captcha = new otherCaptcha(86,48,4);<br>
echo $captcha->showImg();
Session::set('code',$captcha->getCaptcha());<br>
終了<br>
}<br>
<br>
<br>
<br>
<br>
モジュール内: <img title="クリックして確認コードを更新" src="__WEBSITE__/public/index.php/seller/login/get_captcha" class="code-img" onClick="this.src='__WEBSITE__/ public/index.php/seller/login/get_captcha?d='+Math.random();" /><br />
<br />
<br />
<br />
<br />
echo Session::get('code','wll_'); 出力検証コード<br />
<br />
<br />
以下は、Captcha.php クラス <br /> です。
<?php<br />
その他の名前空間;<br />
クラスキャプチャ{<br />
private $width;<br />
private $height;<br />
プライベート $codeNum;<br />
プライベート $code;<br />
プライベート $im;<br />
//初期化<br />
関数 __construct($width=80, $height=20, $codeNum=4){<br />
$this->width = $width;<br />
$this->height = $height;<br />
$this->codeNum = $codeNum;<br />
}<br />
// 確認コードを表示<br />
関数 showImg(){<br />
// 画像を作成します <图片>
$this->createImg();<br />
//干渉要素を設定します<br />
$this->setDisturb();<br />
//確認コードを設定します<br />
$this->setCaptcha();<br />
// 画像を出力 <图片>
$this->outputImg();<br />
}<br />
<br />
//表示された認証コードを取得し、認証コードのデータが正しいかどうかを検証します<br />
関数 getCaptcha(){<br />
return $this->code;<br />
}<br />
<br />
//画像を作成<br />
プライベート関数 createImg(){<br />
$this->im = imagecreatetruecolor($this->width, $this->height);<br />
$bgColor = imagecolorallocate($this->im, 255, 255, 255);//作成された前景は白です<br />
Imagefill($this->im, 0, 0, $bgColor);<br />
}<br />
<br />
//干渉要素を設定します<br />
プライベート関数 setDisturb(){<br />
$area = ($this->幅 * $this->高さ) / 20;<br />
$disturbNum = ($area > 250) : $area;<br />
//干渉を追加します<br />
for ($i = 0; $i <$disturbNum; $i++) {<br />
$color = imagecolorallocate($this->im, rand(0, 255), rand(0, 255), rand(0, 255));<br />imagesetpixel($this->im, rand(1, $this->width - 2), rand(1, $this->height - 2), $color);<br />
}<br />
// 円弧を追加<br />
for ($i = 0; $i <= 1; $i++) {//最大 2 行<br />
$color = imagecolorallocate($this->im, rand(128, 255), rand(125, 255), rand(100, 255));<br />
imagearc($this->im, rand(0, $this->width), rand(0, $this->height), rand(30, 300), rand(20, 200), 50, 30 、$color);<br />
}<br />
}<br />
//認証コードに乱数を設定<br />
プライベート関数 createCode(){<br />
$str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ";<br />
for ($i = 0; $i < $this->codeNum; $i++) {<br>
$this->code .= $str{rand(0, strlen($str) - 1)};<br>
}<br>
}<br>
//確認コードを設定します<br>
プライベート関数 setCaptcha(){<br>
// 認証コードの乱数を設定します
$this->createCode();<br>
//テキストの前景<br>
$color = imagecolorallocate($this->im, rand(50, 250), rand(100, 250), rand(128, 250));<br>
//imagechar の最大テキストフォントは 5 であるため、フォントが小さすぎるため、このメソッドは使用されません<br>
// imageChar($ this-&gt; im、$ size、$ x、$ y、$ this-&gt; code {$ i}、$ color);
//imagechar の最大テキスト フォントは 5 であり、ここではより大きなテキストを表示する必要があるため、imagefttext <br> を使用します
imagefttext($this->im,30,0,10,35,$color,'static/pc/fonts/monofont.ttf',$this->code);//画像リソース、サイズ、角度、x -軸、y軸、色、フォントパス、テキスト挿入画像<br>
}<br>
//画像を出力<br>
プライベート関数outputImg(){<br>
if (imagetypes() & IMG_JPG) {<br>
header('Content-type:image/jpeg');<br>
Imagejpeg($this->im);<br>
} elseif (imagetypes() & IMG_GIF) {<br>
header('Content-type: image/gif');<br>
Imagegif($this->im);<br>
} elseif (imagetype() & IMG_PNG) {<br>
header('Content-type: image/png');<br>
Imagepng($this->im);<br>
} else {<br>
die("画像タイプをサポートしていません!");<br>
}<br>
}//終了<br>
}<br> <br>広告: 本当に無料、ドメイン名 + 仮想マシン + 企業メール = 0 元 <br>
<br>