メールフォームの和暦入力で年号が一桁の和暦が入力できない

pettyconan > メールフォームの和暦入力で年号が一桁の和暦が入力できない @ 2016/4/25 14:52
※初めて投稿します。内容や投稿先が不適切等ございましたらご指摘いただけると幸いです。

【動作環境】
■BaserCMS : 3.0.9
■設置フォルダ : ドキュメントルート
■PHP : 5.5.33
■利用データベース : MySQL 5.5.46

【現象】
メールフォームの和暦入力を使用した場合、昭和1年〜9年、平成1年〜9年などの1桁の年号の日付を入力すると、submit 時に入力エラーとなってしまいフォームを送信する事ができません。
入力確認時には西暦年号は表記されているものの和暦年号が空になっており、また、入力を修正するために入力フォームに戻った際にも年は未選択状態となっています。

【原因】
BcTimeHelper.php 内での和暦のパース時に使用する正規表現が ^(?[mtsh])-(?[0-9]{2}) となっており、h-1 などの一桁の年号にマッチしない。
当方の環境においては ^(?[mtsh])-(?[0-9]{1,2}) とパッチを当てることで回避しましたので、情報共有のためフォーラムに投稿します。

参考までにパッチファイルは下記の通りです。
--- lib/Baser/View/Helper/BcTimeHelper.php	2015-12-01 13:54:10.000000000 +0900
+++ lib/Baser/View/Helper/BcTimeHelper.php.patched	2016-04-25 14:30:08.513733676 +0900
@@ -42,7 +42,7 @@ class BcTimeHelper extends TimeHelper {
  *
    * @var string
      */
      -	public $warekiRegex = '!^(?<nengo>[mtsh])-(?<year>[0-9]{2})([/\-])(?<month>0?[0-9]|1[0-2])([/\-])(?<day>[0-2][0-9]|3[01])$!';
      +	public $warekiRegex = '!^(?<nengo>[mtsh])-(?<year>[0-9]{1,2})([/\-])(?<month>0?[0-9]|1[0-2])([/\-])(?<day>[0-2][0-9]|3[01])$!';

 /**
   * 年号を取得
beychan > Re: メールフォームの和暦入力で年号が一桁の和暦が入力できない @ 2016/4/27 11:18
pettyconanさん

はじめまして。
バグ報告ありがとうございます。

こちらのバグ報告に関してチケットを切って報告しました。
http://project.e-catchup.jp/issues/11930

よろしくお願いします。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
24 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 24