プロジェクト

全般

プロフィール

Backport(バックポート) #4149

完了

Bug(バグ) #4013: メールアドレス変更を行うと member_config に name='captcha' のレコードが追加される

メールアドレス変更を行うと member_config に name='captcha' のレコードが追加される

Youichi Kimura さんがほぼ8年前に追加. 6年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2016-09-23
期日:
進捗率:

100%

予定工数:

説明

Overview (現象)

メールアドレス変更を行うと、member_config に下記のような name = 'captcha' のレコードが追加される。

> SELECT * FROM member_config WHERE name = 'captcha' \G
*************************** 1. row ***************************
             id: 145
      member_id: 2
           name: captcha
          value: Array
 value_datetime: NULL
name_value_hash: 7fee6c903f71b6b14b0b6b6636ab3f5b
     created_at: 2016-08-31 15:30:37
     updated_at: 2016-08-31 15:30:37

Causes (原因)

source:lib/form/MemberConfigForm/MemberConfigPcAddressForm.class.php@43190aa1#L28:

  public function __construct(Member $member = null, $options = array(), $CSRFSecret = null)
  {
    parent::__construct($member, $options, $CSRFSecret);

    if (sfConfig::get('op_is_use_captcha', false))
    {   
      $this->embedForm('captcha', new opCaptchaForm());
    }   
  }

MemberConfigPcAddressForm, MemberConfigMobileAddressForm では embedForm を使用して opCaptchaForm を追加している。一方で、saveConfig メソッドでは追加された captcha フィールドをそのまま member_config テーブルに格納しようとするため上記のような現象が発生する。

Way to fix (修正内容)

修正内容を記入

他の形式にエクスポート: Atom PDF