0

私は CodeIgniter を初めて使用し、古い学校の php スクリプトに慣れているため、これについては助けが必要です。

フォームの 1 つにキャプチャ システムを含めたいと考えています。そのドキュメントによると、画像を生成するには、次のようにする必要があります。

<img id="captcha" src="/securimage/securimage_show" alt="CAPTCHA Image" />

ファイルをダウンロードしましたが、どこに置くのですか? Codeigniter を使用してsecurimage_show.phpファイルを呼び出すにはどうすればよいですか? その内容をsrc画像の属性に出力しますか?

4

2 に答える 2

0

Fuel (codeigniter ベースの cms) に Captcha を追加する場合、画像を配置するフォルダーに Captcha 画像を生成する php ファイルを配置し、画像にリンクするのと同じ方法でリンクします。

<?php echo img(array('src'=>'image_show.php', 'alt'=> 'CAPTCHA Image')); ?>

おそらく最も良い解決策ではありませんが、うまくいきます。

または、NuCaptcha CodeIgniter プラグインhttp://docs.nucaptcha.com/plugins/codeigniterなど、codeigniter 専用に作成された Captcha プラグインを使用してください。

于 2013-07-31T16:48:01.747 に答える
0

Codeigiter には captcha helperがあります。

まず、キャプチャ画像を保存できるフォルダーを作成し、このフォルダーに読み取り/書き込み操作を実行する権限を付与します。この場合、captchacodeigniter インスタンスのルートにフォルダーを作成しました。

captcha次に、ヘルパーをロードします。

$this->load->helper('captcha');

設定を使用してキャプチャのインスタンスを開始しましょう (フォーム内ControllerまたはViewフォームで実行できます)。

$rand_string = strtoupper(random_string('nozero', 4));
$settings = array(
    'word' => $rand_string,
    'img_path'   => './captcha/',
    'img_url'    => base_url() .'captcha/',
    'img_width'  => '250',
    'img_height' => 35,
     'expiration' => 7200
);

$cap = create_captcha($settings);
$this->session->set_userdata('captchaWord',$cap['word']);

session生成されたキャプチャ ワードを作成するたびに (たとえば、ページの更新時などに)保持していることに注意してください。captcha wordこのようにして、オリジナルと自分の入力を比較できformます。次に、生成されたキャプチャ画像をフォーム (ビュー) のどこかに入力フィールドとともに表示します。

<form id="my_form">
   <input type="text" name="captcha" value=""/>
   <?= $cap['image']; ?>
</form>

今、私がしなければならないことは、input受け取ったmy_form実際のキャプチャ値と比較することです(フォーム送信を処理するコントローラーで):

$userCaptcha = $this->input->post('captcha');
$actual_word = $this->session->userdata('captchaWord');
if( strcmp(strtoupper($userCaptcha),strtoupper($actual_word)) == 0  ) {
  // input and captcha are the same
}
于 2014-03-08T03:51:44.293 に答える