非現実的な PHP セッション検証コードに関連する問題を解決する
PHP セッション認証コードが非現実的である問題を解決しました
最初は画像が表示できず、ひび割れた画像が表示されました。問い合わせたところ、以下の可能性があることが判明しました。
1 ) header("Content-type:image/png");
ini_set('display_errors', 'Off');
確認コードを生成する画像のコードを添付します
<?php ini_set('display_errors', 'Off'); header("Content-type:image/png"); session_start(); $_SESSION['code'] = 'null'; //初始化 $width = '58'; $height = '22'; //$code = ''; $tmptext =''; $bordercolor= ''; for($i=0;$i<4;$i++) { $tmptext = rand(0,9); $code .= $tmptext; } $_SESSION['code'] = $code; //以下三句诗让浏览器不缓存 @header("Expires:-1"); @header("Cache-Control:no-store,private,posc-check=0,pre-check=0,max-age=0",FALSE); @header("Pragma:no-cache"); if(function_exists('imagecreate') && function_exists('imagecolorset') && function_exists('imagecopyresized') && function_exists('imagecolorallocate') && function_exists('imagesetpixel') && function_exists('imagechar') && function_exists('imagecreatefromgif') && function_exists('imagepng') ) { $im = imagecreate($width, $height); $backgroundcolor = imagecolorallocate($im, 255, 255, 255); $numorder = array(1,2,3,4); /**shuffle将数组打乱*/ shuffle($numorder); /**array_flip返回一个被反转的数组,键值被处理值*/ $numorder = array_flip($numorder); $x=''; $y=''; $text_color = ''; for($i=1;$i<=4;$i++) { $x = $numorder[$i] * 13 + mt_rand(0,4) -2; $y = mt_rand(0,3); $text_color = imagecolorallocate($im, mt_rand(50,255), mt_rand(50,255), mt_rand(50,255)); /**将字符画在$im图中,5表示字体的大小 $x+5 */ imagechar($im, 5, $x+5, $y+3, $code[$numorder[$i]], $text_color); } $linenums = mt_rand(10,32); for($i=0;$i<=$linenums;$i++) { $linecolor = imagecolorallocate($im, 255, mt_rand(0,255), mt_rand(0,255)); $linex = mt_rand(0,255); $liney = mt_rand(0,255); imageline($im, $linex, $liney, $linex+mt_rand(0,4)-2, $liney+mt_rand(0,4)-2, $linecolor); } for($i=0;$i<40;$i++) { $pointcolor = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); imagesetpixel($im, mt_rand(0,$width), mt_rand(0,$height), $pointcolor); } $bordercolor = imagecolorallocate($im, 150, 150, 150); imagerectangle($im, 0, 0, $width-1, $height-1, $bordercolor); imagepng($im); imagedestroy($im); }?>
2)変数が初期化されていません
3)
ob_clean();

ホット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)

ホットトピック









Golang を使用する開発または学習のプロセス中に、unknown:rand.Seed というエラー メッセージが表示されることがあります。 Golang では、 rand パッケージの関数を使用する前に乱数シードを設定する必要があるため、このエラーは通常、乱数ジェネレーターを使用する必要がある場合に発生します。この記事では、このエラーを解決する方法について説明します。 1. math/rand パッケージを導入する まず、math/rand パッケージをコードに導入する必要があります。存在する

ファンクションとは、関数を意味します。これは、特定の関数を備えた再利用可能なコード ブロックです。プログラムの基本コンポーネントの 1 つです。入力パラメータを受け取り、特定の操作を実行し、結果を返すことができます。その目的は、再利用可能なコード ブロックをカプセル化することです。コードの再利用性と保守性を向上させるコード。

この記事では、Python の enumerate() 関数と「enumerate()」関数の目的について学びます。 enumerate() 関数とは何ですか? Python の enumerate() 関数は、データ コレクションをパラメータとして受け取り、列挙オブジェクトを返します。列挙オブジェクトはキーと値のペアとして返されます。キーは各項目に対応するインデックス、値は項目です。構文 enumerate(iterable,start) パラメータ iterable - 渡されたデータ コレクションは、iterablestart と呼ばれる列挙オブジェクトとして返すことができます。 - 名前が示すように、列挙オブジェクトの開始インデックスは start によって定義されます。無視したら

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

MySQL.proc テーブルの役割と機能の詳細な説明。MySQL は人気のあるリレーショナル データベース管理システムです。開発者が MySQL を使用する場合、多くの場合、ストアド プロシージャ (StoredProcedure) の作成と管理が必要になります。 MySQL.proc テーブルは非常に重要なシステム テーブルであり、ストアド プロシージャの名前、定義、パラメータなど、データベース内のすべてのストアド プロシージャに関連する情報が保存されます。この記事では、MySQL.proc テーブルの役割と機能について詳しく説明します。

Go 同時プログラミングでの乱数生成の同期: ミューテックス (sync.Mutex) を使用して、rand.Rand 乱数ジェネレーターへのアクセスを制御します。各ゴルーチンは乱数を生成する前にミューテックス ロックを取得し、生成後にミューテックス ロックを解放します。これにより、一度に 1 つの goroutine だけが乱数ジェネレーターにアクセスできるようになり、データ競合が排除されます。

rand() 関数は、各呼び出しで同じ初期シードを使用します。デフォルトの初期シードはオペレーティング システムの時間から取得されますが、精度はマイクロ秒のみです。つまり、非常に短い期間内に、多くの rand() 関数呼び出しで同じ初期シードが使用され、同じ乱数が生成されます。では、この問題をどうやって解決すればよいでしょうか?

Vue の使い方と機能.use Function Vue は、多くの便利な機能を提供する人気のフロントエンド フレームワークです。その 1 つは Vue.use 関数で、これを使用すると Vue アプリケーションでプラグインを使用できるようになります。この記事では、Vue.use 関数の使い方と機能を紹介し、いくつかのコード例を示します。 Vue.use 関数の基本的な使用法は非常に簡単です。Vue がインスタンス化される前に関数を呼び出し、使用するプラグインをパラメータとして渡すだけです。簡単な例を次に示します。 // プラグインの導入と使用
