認証コードが表示されないという難しい質問
通常、確認コードは表示されませんが、次の理由により問題はありません: 1. BOM ヘッダーがある、2. extension=php_gd2.dll が開かれていない (つまり、セミコロンが削除されている)
しかし、これは私は両方をチェックしたので、上記の 2 つの理由ではありません。
フォーラムには、ページの先頭に ini_set('display_errors', 'Off'); を追加するという解決策もあります (この投稿を参照してください: http://bbs.csdn.net/)。 topic/ 350011289) はまだ動作しません
しかし、私が使用している php のバージョンは PHP バージョン 5.3.28 です
他の cms プログラムが検証コードを表示するのは奇妙です
あるいは、これは難しい質問だと言うべきでしょうか。何が起こっているのでしょうか?
ディスカッションへの返信(解決策)
当たり前じゃないですか?これら 5 つの間違いを修正するだけで完了です
開きたいページは確認コードを生成するページではないでしょうか?それ以外の場合、エラー表示を有効にするとどうなりますか?
これは警告メッセージであり、検証コードとは関係ありません。もう 1 つは、error_reporting(E_ALL & ~E_NOTICE); を使用しても検証コードが表示されないことです。
コードを投稿してください!
私の質問が気に入らない場合は、私の投稿から離れてください。どれだけ私をからかうのに興味がありますか?お金をくれたら、まだ一緒にプレイすることを検討します!
私は誰も私の質問に答えてくれるとは思っていませんし、誰も私の質問に興味を持ってくれるとも思っていません。ドゥルオジ、鏡を見なかったら、あなたは誰ですか?この資格をお持ちですか?
コードを投稿してください!
あなたの多くの返信から判断すると、あなたは php では三流か四流の人物であることがわかります。解けない奇妙な問題。とても簡単だと思っている問題が問題ではないとは思わないでください。あなたははるかに遅れています。本物の専門家の皆さん、あなたのような顔をしている人を見てください。あなたはせいぜい PHP を漠然と理解している程度の人で、私も同様ですが、私とあなたの違いは、私が非常に謙虚であるということです。
状況が異なれば、異なる分析が必要になります。
スクリーンショットには認証コードの画像が表示できないことが示されているだけであり、上記の通知と警告はlogin.phpの警告とプロンプトであり、認証コードとは何の関係もありません。
状況が異なれば、異なる分析が必要になります。
スクリーンショットには認証コードの画像が表示できないことが示されているだけであり、上記の通知と警告はlogin.phpの警告とプロンプトであり、認証コードとは何の関係もありません。
おっしゃるとおり、通知と警告は PHP を使用する際の警告であり、コードの実行には影響しません。これは、PHP を学習したばかりの人でも知っている常識です。
また、私の問題は実際には検証クラスの検証コード部分の問題です。最初はBOMヘッダーの問題だと思いましたが、BOMヘッダーなしで保存すると機能しませんでした。チュートリアルの例ですが、もちろん、講演者が使用している PHP のバージョンは低くても表示できます。私のは高いですが、高いものは低いものと互換性があります。
さらに、GDもオンになり、多くの方法を試しましたが無駄でした。この記事を投稿したのは、コードに関する内容が多いためです。投稿すると、人々は読む気にならないと思います。 また、投稿する場合もphpページに認証コードを投稿する必要がありますが、このページを見てみると非常に統一された書き方になっています。
検証コード
<?php //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789'; //随机因子 private $code; //验证码 private $codelen = 4; //验证码长度 private $width = 130; //宽度 private $height = 50; //高度 private $img; //图形资源句柄 private $font; //指定的字体 private $fontsize = 20; //指定字体大小 private $fontcolor; //指定字体颜色 //构造方法初始化 public function __construct() { $this->font = ROOT_PATH.'/font/elephant.ttf'; } //生成随机码 private function createCode() { $_len = strlen($this->charset)-1; for ($i=0;$i<$this->codelen;$i++) { $this->code .= $this->charset[mt_rand(0,$_len)]; } } //生成背景 private function createBg() { $this->img = imagecreatetruecolor($this->width, $this->height); $color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255)); imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color); } //生成文字 private function createFont() { $_x = $this->width / $this->codelen; for ($i=0;$i<$this->codelen;$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<6;$i++) { $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156)); imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color); } for ($i=0;$i<100;$i++) { $color = imagecolorallocate($this->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 strtolower($this->code); } }
修正しましたが、問題ありません。主な問題は、フォントで ROOT_PATH が定義されていないため、$this->font = ROOT_PATH を取得できないことです。'/font/elephant.ttf ';
ROOT_PATH を変更する 現在のテスト ディレクトリは次のようになります。
test.php
font/elephant.ttf
test.php の ROOT_PATH は、define('ROOT_PATH', dirname(__FILE__)); に設定されています
完全なテストコードは次のとおりです:
//验证码类define('ROOT_PATH', dirname(__FILE__));//验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789'; //随机因子 private $code; //验证码 private $codelen = 4; //验证码长度 private $width = 130; //宽度 private $height = 50; //高度 private $img; //图形资源句柄 private $font; //指定的字体 private $fontsize = 20; //指定字体大小 private $fontcolor; //指定字体颜色 //构造方法初始化 public function __construct() { $this->font = ROOT_PATH.'/font/elephant.ttf'; } //生成随机码 private function createCode() { $_len = strlen($this->charset)-1; for ($i=0;$i<$this->codelen;$i++) { $this->code .= $this->charset[mt_rand(0,$_len)]; } } //生成背景 private function createBg() { $this->img = imagecreatetruecolor($this->width, $this->height); $color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255)); imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color); } //生成文字 private function createFont() { $_x = $this->width / $this->codelen; for ($i=0;$i<$this->codelen;$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<6;$i++) { $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156)); imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color); } for ($i=0;$i<100;$i++) { $color = imagecolorallocate($this->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 strtolower($this->code); } }$obj = new ValidateCode();$obj->doimg();
わかりました。私はそれを持っていません このソースコードをルートディレクトリに置いて作成してください、ありがとう、あなたはとても熟練しています🎜

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
