この投稿の最終編集者は ziluoapo4 で、2014-10-12 17:33:16通常、確認コードは表示されません。これは、1.
BOM ヘッダー がある、2.
extension=php_gd2.dll が有効になっていない (つまり、セミコロンが有効になっていない) ためです。削除されました)
しかし、両方をチェックしたので、これは私には当てはまりません。
フォーラムには、
ini_set('display_errors', 'Off');ページの先頭にも追加しました (この投稿を参照してください: http:/ / bbs.csdn.net/topics/350011289) はまだ動作しません
しかし、他の CMS プログラムでは確認コードが表示されます。私が使用している PHP バージョンは PHP バージョン 5.3.28 です
そうでない場合は、次のようになります。
-----解決策のアイデア-------- -修正しましたが、問題ありません。主な問題は、フォントに ROOT_PATH が定義されていないため、$this->font = ROOT_PATH.'/font/elephant.ttf'; を取得できないことです。
define メソッドを使用して ROOT_PATH を正しいパスに変更するだけです。現在のテスト ディレクトリは次のようになります。
test.php
font/elephant.ttf
test.php の ROOT_PATH は、define('ROOT_PATH', dirname(__FILE__));
完全なテスト コードは次のとおりです。 :
<br>//検証コード クラス<br>define('ROOT_PATH', dirname(__FILE__));<br><br>//検証コード クラス<br>class ValidateCode {<br> private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789'; //ランダム係数<br> private $code; //検証コード<br> private $codelen = 4; private $width = 130; $height = 50 ; //高さ<br> private $img; //グラフィックリソースハンドル<br> private $fontsize = 20; ';<br> }<br> <br> //ランダム コードを生成<br> private function createCode() {<br> } $_len = strlen($this->charset)-1;<br> for ( $i=0 ;$i<$this->codelen;$i ) {<br> <br> > // バックグラウンドを生成 <br> プライベート関数 Createbg () 🎜> $this-> IMG = ImageCreateTrueColor ($ This-& GT; 幅, $ This-& GT; 高さ; 高さ ); <br> $ color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255) 157,255));<br> imagefilledrectangle($this->img,0,$this->height,$this ->width,0,$color);<br> }<br> <br> // 生成文字<br> private function createFont() { <br> $_x = $this->width / $this->codelen;<br> for ($i=0;$i<$this-> ;codelen;$i ) {<br /> $this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));<br> imagettftext($this - >img,$this->フォントサイズ,mt_rand(-30,30),$_x*$i mt_rand(1,5),$this->高さ / 1.4,$this->フォントカラー,$this- >font,$this->code[$i]);<br> }<br> }<br> <br> // 生成線条、雪花<br> private function createLine() {<br> for ( $i=0;$i<6;$i ) {<br /> $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));<br> imageline( $this->img,mt_rand(0,$this->幅),mt_rand(0,$this->高さ),mt_rand(0,$this->幅),mt_rand(0,$this- >height),$color);<br> }<br> for ($i=0;$i