ホームページ > php教程 > php手册 > tp5 確認コード

tp5 確認コード

WBOY
リリース: 2016-06-20 08:42:47
オリジナル
2320 人が閲覧しました

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>

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート