Heim > Artikel > Backend-Entwicklung > Verwendung von Captcha in Cakephp zur Implementierung sichererer Verifizierungscodes
Zunächst können Sie das folgende Programm verwenden, um das Bestätigungscode-Bild abzurufen. Beachten Sie, dass die Sitzungsvariable angepasst wird, wenn das Programm das Bild generiert.
getImage.php
include('kcaptcha.php');
session_start();
$captcha = new KCAPTCHA();
$_SESSION['captcha_keystring'] = $captcha->getKeyString();
?>
Rufen Sie als Nächstes das Bestätigungscode-Bild über das folgende Formular auf und überprüfen Sie, ob die Benutzereingabe mit dem Bestätigungscode-Bildwert übereinstimmt.
index.php
session_start();
$true_key_string = $_SESSION['captcha_keystring' ];
echo $true_key_string;
?>
if(isset($_SESSION['captcha_keystring']) && $true_key_string == $_POST['keystring'])
{
echo „Richtig“;
}else
{
echo „Falsch“;
}
?>
Wie verwende ich Captcha in Cakephp?
Kopieren Sie zunächst den Kcaptcha-Ordner in das Herstellerverzeichnis. Da der Verifizierungscode in vielen Controllern verwendet wird, ist es am besten, diese Funktion mit einer Komponente zu kapseln. Diese Komponente umfasst zwei Funktionen: Bildgenerierung und Verifizierung. Erstellen Sie eine neue captcha.php-Datei im Verzeichnis „controllers/components“.
class CaptchaComponent erweitert Objekt {
var $Controller = null ;
Funktionsstart(&$controller)
{
$this->Controller = $controller;
}
function render()
{
App::import('vendor', 'kcaptcha/kcaptcha');
$kcaptcha = new KCAPTCHA();
$this->Controller->Session->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;
}
}
?>
Um das Verifizierungscodebild in der Ansicht aufzurufen, können Sie als Nächstes die Captcha-Komponente zum Controller (z. B. dem Benutzer-Controller) hinzufügen. Oder erstellen Sie einen separaten Captchas-Controller, um Bestätigungscode-Bilder zu generieren.
Klasse CaptchasController erweitert AppController {
var $ name = 'Captchas';
var $uses = array();
var $components = array('Captcha');
var $helps = array(' Cache');
var $cacheAction = true;
function index() {
Configure::write('debug', '0 ');
$this->autoRender = false;
$this->Captcha->render();
}
}
?>
Das Obige ist der Inhalt der Verwendung von Captcha zur Implementierung eines sichereren Bestätigungscodes in
Cakephp. Für weitere verwandte Inhalte achten Sie bitte auf PHP Chinesische Website (www.php.cn)!