ホームページ > バックエンド開発 > PHPチュートリアル > 認証コードを作成するときに、突然エラーが大量に表示されました。助けてください。ありがとうございます。

認証コードを作成するときに、突然エラーが大量に表示されました。助けてください。ありがとうございます。

WBOY
リリース: 2016-06-23 13:58:34
オリジナル
1170 人が閲覧しました


検証コードのphpスクリプトを書こうとして、image関数が利用できないというメッセージが出始めたので、php5-gdを追加しました
インストールが完了した後、関数がまだ見つからないことがわかりました
そこでsudo / etc/init.d/apache2 focus-reload を使用しました
すると、機能に問題があるというメッセージが表示されましたが、大量の警告メッセージが表示されました
php.ini ファイルを確認して修正しました error.report =E_ALL & ~E_NOTICE
サーバーを再起動しましたが、同じでした、
検証コード 生成されたコードは次のとおりです

<?php	session_start();	//set some important identfy constants	define('IDENTFY_NUM',5);	define('IDENTFY_WIDTH',75);	define('IDENTFY_HEIGT',25);	//create the random pass-phrase	$pass_phrase="";	for($i=0;$i<IDENTFY_NUM;$i++){		$pass_phrase.=chr(rand(97,122));		}	$_SESSION['pass_phrase']=sha1($pass_phrase);	$img=imagecreatetruecolor(IDENTFY_WIDTH,IDENTFY_HEIGHT);	$bg_color=imagecolorallocate($img,255,255,255);	$text_color=imagecolorallocate($img,0,0,0);	$graphic_color=imagecolorallocate($img,64,64,64);		imagefilledrectangle($img,0,0,IDENTFY_WIDTH,IDENTFY_HEIGHT,$bg_color);		//Draw random lines	for($i=0;$i<5;$i++){		imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color);	}	for($i=0;$i<50;$i++){		imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color);	}	//Draw the string	imagettftext($img,18,0,5,IDENTFY-5,$text_color,"Courier New Bold.ttf",$pass_phrase);	header("Content-type:image/png");	imagepng($img);	imagedestroy($img);	?>	
ログイン後にコピー


ディスカッションに返信(解決策)

定数の定義と使用方法は自分で確認してください矛盾しています

定数の定義と使用法が矛盾していますので、自分で確認してください


モデレーター、ありがとうございます、間違いです、それは非常に多くの問題を引き起こしました、私は焦っていますが、今、imagettftext() 関数がフォントを見つけることができないようですマニュアルを読んでもフォントが表示されません。どうすればフォントを見つけることができますか?フォントパスの設定方法 フォントパスはLinuxのフォントパスを指すのでしょうか?それともgdライブラリのフォントを指しますか?

フォント ファイルは絶対パスを使用する必要があります。どこにでも記述してください

除算の 23 行目の分母をゼロにすることはできないことが明確に指摘されています。ここにはエラーがあるため、さまざまな値が存在します。反転した $img 変数で、27 行目の imagesetpixel を作成します。この関数には利用可能な画像リソースがありません

for($i=0;$i<5;$i++){        imageline($img,0,rand()%IDENTFY_HEIGHT,IDENTFY_WIDTH,rand()%INDENTFY_HEIGHT,$graphic_color);    }
ログイン後にコピー


 for($i=0;$i<50;$i++){        imagesetpixel($img,rand()%IDENTFY_WIDTH,rand()%IDENTFY_HEIGHT,$graphic_color);     }
ログイン後にコピー

割り算の分母をゼロにすることはできないことが明確に指摘されていますここにエラーがあり、反転された $img 変数にさまざまな値があるため、27 行目の imagesetpixel 関数には利用可能な画像リソースがありません。

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