symfony下使用登陆验证码

之前看过使用sfCaptchaGDPlugin插件的文章。。按照上面的步骤下来。貌似还是不行。

这里我使用的是symfony1.4,把我正常情况下的步骤放上来,大家分享一下。

1.首先去下载sfCaptchaGDPlugin

2.启用插件,要在ProjectConfiguration.class.php里面添加上

查看文本 打印
  1. class ProjectConfiguration extends sfProjectConfiguration {   
  2.    
  3.     public function setup() {   
  4.         $this->enablePlugins('sfDoctrinePlugin');   
  5.         $this->enablePlugins('sfDoctrineGuardPlugin');   
  6.         $this->enablePlugins('sfDoctrineActAsSignablePlugin');   
  7.         $this->enablePlugins('sfCaptchaGDPlugin');   
  8.     }   
  9. }   

3.在你要使用的app里面启用插件。。修改settings.yml

查看文本 打印
  1. all:   
  2.   .settings:   
  3.     # Form security secret (CSRF protection)   
  4.     csrf_secret:            db498ea94181dc9c289cac99a1e665488bf7daed   
  5.     enabled_modules:      [default, sfGuardGroup, sfGuardUser, sfGuardPermission,sfGuardAuth,sfCaptchaGD]   
  6.     # Output escaping settings   
  7.     escaping_strategy:      true   
  8.     escaping_method:        ESC_SPECIALCHARS   
  9.    
  10.     # Enable the database manager   
  11.     use_database:           true   
  12.     # sfDoctrinePlugin插件设置登入登出动作   
  13.     login_module:           sfGuardAuth    
  14.     login_action:           signin   
  15.        
  16.     # ecNote sfDoctrinePlugin插件设置认证控制动作   
  17.     secure_module:          sfGuardAuth   
  18.     secure_action:          secure   
  19.     standard_helpers:     [Partial, Cache, I18N]   
  20.     i18n:                 true   

4.可以在APP.YML里面配置一些插件。

查看文本 打印
  1. all:   
  2.     sf_captchagd:   
  3.         image_width:                   100                                          # 验证码图片的宽度(px)   
  4.         image_height:                  30                                           # 验证码图片的高度(px)   
  5.         chars:                         "123456789abc"                    # 验证码中会出现的字符   
  6.         length:                        4 # 验证码长度   
  7.         font_size:                     18 # 字体大小   
  8.         force_new_captcha:             false # if true - captcha regenerated EVERY request, even if user input true value before   
  9.    
  10.         # possible chars colors   
  11.         font_color:                    ["252525""8b8787""550707""3526E6""88531E"]       #字体色   
  12.    
  13.         # chars fonts   
  14.         fonts:                         ["akbar/akbar.ttf""brushcut/BRUSHCUT.TTF""molten/molten.ttf""planet_benson/Planetbe.ttf""whoobub/WHOOBUB_.TTF"]                #字体   
  15.         background_color:              DDDDDD                            # 验证码的背景色   
  16.         border_color:                  000000                               # 验证码的边框色   

5.增加一条插件的路由,routing.yml

查看文本 打印
  1. sf_captchagd:   
  2.   url:    /administrator/captcha/:key/:reload   
  3.   param:  { module: sfCaptchaGD, action: getImage, key: failed, reload: 0 }   

6. 修改插件的权限控制,把插件的访问权限关掉。

plugins/sfCaptchaGDPlugin/modules/sfCaptchaGD/

在这个目录下新增config文件夹,并添加security.yml文件。

查看文本 打印
  1. default:   
  2.   is_secure: false   

7.确保你的系统的extension=php_gd2.dll是开启的。

8.接着CC一下我们的项目

9.在我们的表单里面添加插件信息。

projectName\plugins\sfDoctrineGuardPlugin\lib\form\doctrine

查看文本 打印
  1. class sfGuardFormSignin extends BasesfGuardFormSignin   
  2. {   
  3.   /**  
  4.    * @see sfForm  
  5.    */   
  6.   public function configure()   
  7.   {   
  8.       $this->widgetSchema['captcha'] = new sfWidgetCaptchaGD();   
  9.       $this->validatorSchema['captcha'] = new sfCaptchaGDValidator(array('length' => 4),array('required'=>'验证码为必填项!','invalid'=>'验证码错误!','length'=>'请输入4位验证码!'));   
  10.       $this->widgetSchema['captcha']->setLabel('验证码');   
  11.   }   
  12. }   

你可能感兴趣的:(symfony下使用登陆验证码)