ホームページ  >  記事  >  バックエンド開発  >  認証コードが表示されません。助けてください。

認証コードが表示されません。助けてください。

WBOY
WBOYオリジナル
2016-06-23 13:47:21819ブラウズ

//検証コードクラス
class ValidateCode {
private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789' //ランダム係数
private $code; // 検証コード
private $codelen private $width = 130; //グラフィックスリソースハンドル
private $font; // フォントの指定
private $fontsize = 20; // フォントのサイズの指定

// コンストラクターの初期化
public function __construct() {
$this- >font = ROOT_PATH.'/font/elephant.ttf';
}

// ランダムコードを生成
private function createCode() {
$_len = strlen($this->charset)-1; ($i=0;$i<$this->codelen;$i++) {
$ this-& gt; charSet [mt_rand (0, $ _ len)]; $this->width, $this->height);
$color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255)); - >img,0,$this->height,$this->width,0,$color);
}
// テキストを生成
private function createFont() width / $this->codelen;
for ($i=0;$icodelen;$i++) {
$this->fontcolor = imagecolorallocate($this->img,mt_rand( 0,156),mt_rand(0,156),mt_rand (0,156));
imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5 ),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]);
private function createLine() {
for ($i=0;$i $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156 ) );            imageline($this->img,mt_rand(0,$this->幅),mt_rand(0,$this->高さ),mt_rand(0,$this->幅),mt_rand(0,$ this->height),$color); ($ i = 0; $ i&lt; 100; $ i ++){
$ color = imagecolorallocate($ this-&gt; img、mt_rand(200,255)、mt_rand(200,255)、mt_rand(200,255));
imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);
}
}

//出力
private function outPut() {
header('Content-type:image/png');
imagepng($this->img);
imagedestroy($this->img);
}

//对外生成
public function doimg() {
$this->createBg();
$this->createCode();
$this->createLine();
$this->createFont();
$this->outPut();
}

//获取验证码
public function getCode() {
return strto lower($this->code);
}
}
?>

個別にファイルが表示されるのは通常であり、mvc モードでのメソッド中に表示される図片就xx了です。
require 「./core/ValidateCode.class.php」;  //最初にクラスを含め、実際のパスは状況に応じて変更されます。
$_vc = new ValidateCode(); //实例化一对オブジェクト
$_vc->doimg();
$_SESSION['code'] = $_vc->getCode();//SESSION 中に保存されます
?>

表示x的:

class UsersController extends Controller {

public function login(){
$this->smarty->display( 'login.html' );
}

public function verifi(){
$_vc = new ValidateCode(); //实例化一对オブジェクト
$_vc->doimg();
//$_SESSION['code'] = $_vc->getCode();//验证码はSESSION中に保存されます
}

}

?>



回论论(解決案)

代コード一の访问、次のBOM を検査します。


检查过了,没bom

代码一样的话、检查、一下检查bom头头头


检查、没没
不不直接直接直接输出输出
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。