Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2105344
  • 博文数量: 194
  • 博客积分: 6450
  • 博客等级: 准将
  • 技术积分: 2085
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-06 13:39
文章分类

全部博文(194)

文章存档

2013年(38)

2012年(11)

2011年(1)

2010年(1)

2009年(4)

2008年(13)

2007年(18)

2006年(63)

2005年(45)

我的朋友

分类:

2009-05-17 12:23:18

Zend Framework 现在已经是1.80版本了,出现了一些新组建,感觉强大了许多。今天测试了下Zend_Captcha, 手册中的示例有点问题,下面是可以工作的代码。
class TestController extends Lyw0301_Controller_Action {
 public function init() {
  parent::init();
  $this->view->title = '测试';
  $this->view->baseUrl = $this->getFrontController()->getBaseUrl();
  // $this->_helper->viewRenderer->setNoRender();
  //Zend_Layout::getMvcInstance()->disableLayout();
 }
 function generateCaptcha() {
  $captcha = new Zend_Captcha_Image();
  $captcha->setTimeout('300')
  ->setWordLen('6')
  ->setHeight('80')
  ->setFont('./images/font/micross.ttf')
  ->setImgDir('./images/code');
  
  $captcha->generate();   
  return $captcha->getId(); 
 }  

 //validates captcha response
 function validateCaptcha($captcha) {
  $captchaId = $captcha['id'];
  $captchaInput = $captcha['input'];
  $captchaSession = new Zend_Session_Namespace('Zend_Form_Captcha_' . $captchaId);
  $captchaIterator = $captchaSession->getIterator();
  Zend_Debug::dump($captchaIterator);exit;
  $captchaWord = $captchaIterator['word'];
  if($captchaWord) {
   if( $captchaInput != $captchaWord ){
    return false;
   } else {
    return true;
   }
  } else {
   return false;
  }
 }
 public function indexAction() {
  $captchaId = $this->generateCaptcha();       
  $this->view->captchaId = $captchaId;
  if(isset($_POST['captcha'])) {      
   $captcha = $_POST['captcha'];    
   if( $this->validateCaptcha($captcha) ) {
    $this->view->message = 'yes';
   } else {
    $this->view->message = 'no';
   }
  }
 }
}
阅读(1678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~