lut 06
Captacha w Zend Framework
Rozwiązanie to jest proste, wygodne i możliwe do zastosowanie w każdym formularzu.
Formularz
[sourcecode lang="html"]
< ? $c = new TI_Captcha(); ?>
Sprawdzenie
[sourcecode lang="php"]
if(TI_Captcha::isValid($_POST["id"],$_POST["inputWord"])) {
//wszystko się zgadza
} else {
//nie zgadza się
}
[/sourcecode]
Klasa która obsługuje całość
[sourcecode lang="php"]
< ?php
class TI_Captcha {
private $captcha = null;
public function __construct($wordLen = 6, $width = 200, $height = 80, $noiseLevel = 300, $timeOut = 500, $pathToFont = "/application/models/TI/Font/FreeSansBold.ttf", $pathToImage = "/images/captcha") {
$pathToFont = $_SERVER["DOCUMENT_ROOT"].$pathToFont;
$pathToImage = $_SERVER["DOCUMENT_ROOT"].$pathToImage;
if(!file_exists($pathToFont)) {
throw new Zend_Exception($pathToFont." plik nie istnieje.");
}
if(!file_exists($pathToImage)) {
throw new Zend_Exception($pathToImage." plik nie istnieje.");
}
Zend_Loader::loadClass("Zend_Captcha_Image");
$this->captcha = new Zend_Captcha_Image();
$this->captcha->setTimeout($timeOut)
->setWordLen($wordLen)
->setHeight($height)
->setWidth($width)
->setDotNoiseLevel($noiseLevel)
->setFont($pathToFont)
->setImgDir($pathToImage);
$this->captcha->generate();
}
public function getId() {
return $this->captcha->getId();
}
public function getUrlImage() {
return $this->captcha->getImgUrl().$this->captcha->getId().”.png”;
}
public static function isValid($id, $inputWord) {
Zend_Loader::loadClass(„Zend_Session_Namespace”);
$captchaSession = new Zend_Session_Namespace(„Zend_Form_Captcha_” . $id);
$captchaIterator = $captchaSession->getIterator();
$captchaWord = $captchaIterator["word"];
if($captchaWord == $inputWord) {
return true;
} else {
return false;
}
}
public static function getWord($id) {
Zend_Loader::loadClass(„Zend_Session_Namespace”);
$captchaSession = new Zend_Session_Namespace(„Zend_Form_Captcha_” . $id);
$captchaIterator = $captchaSession->getIterator();
return $captchaIterator["word"];
}
}
?>
[/sourcecode]


dzięki! najprostszy i najszybszy sposób na captcha