ホームページ  >  記事  >  バックエンド開発  >  Cakephp で Captcha を使用してより安全な検証コードを実装する

Cakephp で Captcha を使用してより安全な検証コードを実装する

黄舟
黄舟オリジナル
2016-12-20 09:17:121341ブラウズ

まず、次のプログラムを使用して検証コードイメージを取得できます。プログラムがイメージを生成するときにセッション変数が設定されることに注意してください。

getImage.php

include('kcaptcha.php');

session_start();

$captcha = new KCAPTCHA();

$_SESSION['captcha_keystring'] = $captcha->getKeyString();

?>

次に、次のフォームから検証コード イメージを呼び出し、ユーザー入力が検証コード イメージの値と一致するかどうかを確認します。

index.php

session_start();

$true_key_string = $_SESSION['captcha_keystring'];

echo $true_key_string;

?>

< ;html>


if(isset($_SESSION['captcha_keystring']) && $true_key_string == $_POST['keystring'])

{

echo "正しい";

}else

{

echo "間違っています";

}

?>


それでは、どうやって? Cakephp で Captcha を使用する方法?

まず、Kcaptcha フォルダーをベンダー ディレクトリにコピーします。検証コードは多くのコントローラーで使用されるため、この関数をコンポーネントでカプセル化することが最善です。このコンポーネントには、イメージ生成と検証という 2 つの関数が含まれています。新しい captcha.php ファイルをcontrollers/componentsディレクトリに作成します。

&lt;?php

classcaptchacomponentはオブジェクトを拡張します{

var$ controller = null; = $controller;

}

function render()

{

App::import('vendor', 'kcaptcha/kcaptcha');

$kcaptcha = new KCAPTCHA();

$this - >コントローラー->セッション->write('captcha', $kcaptcha->getKeyString());

exit;

}

function checkCaptcha($str)

{

if ( $this->Controller->Session->check('captcha'))

{

$s_captcha = $this->Controller->Session->read('captcha');

if(!empty($str) && $str == $s_captcha)

{

return true;

}

}

return false;

}

}

?>


次に、ビューで確認コード イメージを呼び出すために、Captcha コンポーネントをコントローラー (Users コントローラーなど) に追加できます。または、別の Captchas コントローラーを作成して検証コード イメージを生成します。

class CaptchasController extends AppController {

var $name = 'Captchas';

var $uses = array();

var $components = array('Captちゃ ');


var $helps = array('Cache');

var $cacheAction = true;

function Index() {

Configure::write('debug', '0');

$this->autoRender = false;

$this->Captcha->render();

}

}

?>

上記は

Cakephp で Captcha を使用してさらに多くのことを実現しますセキュリティ 確認コードの内容については、PHP 中国語 Web サイト (www.php.cn) で関連コンテンツをご覧ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。