最近、空き時間と何か役に立つことをしたいという願望から、Codeigniterで
悲惨なキャプチャヘルパーの拡張機能を書くことにしました。
このアシスタントを使用する必要があった場合は、生成されたすべてのキャプチャ画像を保存して、ページにさらに出力することをご存じでしょう。 これは、作成された各ファイルと
ガベージコレクションを追跡し
、使用済みまたはステッチ済みを削除するという形で、不必要なジェスチャーにつながります。
ファイルはプロジェクトフォルダに蓄積されます。これに注意を払わずに標準的なソリューションを使用すると、テキストのランダムな行の表示に問題のある
学校があることに気付くことがあります。 その結果、ユーザーの神経が損なわれます。
8個のランダムな文字を生成しますが、図では6個だけが表示され、残りは右の境界線を超えて「なくなっています」。また、出力時の画像のサイズを除き、外観の調整は一切ありません。
したがって、これらの欠点を考慮して、タスクを作成するように設定されました。
タスク:- ハードドライブへのファイルの記録を削除し、画像を直接ブラウザにストリーミングします。
- 文字が画像の境界を超える場合のエラーを修正します。
- ランダム文字列の長さを指定する機能を追加します。
- フレームありとフレームなしの画像を作成する機能を追加します。
- 画像にランダムな配色の生成を追加します。
実装:MY_captcha_helper.phpfunction create_captcha_stream($data = '') { $defaults = array('word' => '', 'img_width' => 150, 'img_height' => 30, 'font_path' => '', 'random_str_length' => '5', 'border' => TRUE); foreach ($defaults as $key => $val) { if ( ! is_array($data)) { if ( ! isset($$key) OR $$key == '') { $$key = $val; } } else { $$key = ( ! isset($data[$key])) ? $val : $data[$key]; } } if ( ! extension_loaded('gd')) { return FALSE; }
キャプチャを作成する元の機能は、基礎として採用されました。使用例:アシスタントの
拡張機能を接続する方法は、
Codeigniterのドキュメントで簡単に見つけることができる
ため、ここではコピー
アンドペーストを行いません。
入力するコントローラーを作成します。
$this->load->helper('captcha'); $prefs = array(
関数
create_captcha_stream
生成された文字列を返し、画像をブラウザにストリームで表示します。
その後、ユーザーが入力したデータと比較するために、セッションに行を追加します。
したがって、ユーザーに画像を表示するには、キャプチャを表示するフォームのテンプレートにタグを追加します。
<img src=” yoursite.com/ ” />
生成されたキャプチャの例これで、キャプチャがセッションに出力されると、ブラウザーの画像に表示される行が書き込まれます。
入力されたデータの検証:
$captcha = trim($this->input->post('captcha'));
strtolower()
小文字変換関数を使用して、大文字と小文字の区別を削除できます。
この記事は標準的なキャプチャの改善例であり、ここでは新しい超自然的なことは説明しません。