バージョン選択

フォーラム

メニュー

オンライン状況

18 人のユーザが現在オンラインです。 (10 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 18
もっと...

サイト内検索

バグ報告 > フロント機能 > v2.13.0 非会員購入:生年月日の入力チェック等がされていない。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sumida
投稿日時: 2013/9/21 17:56
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
非会員購入画面:生年月日の入力欄について
テンプレート:
data/Smarty/templates/default/shopping/nonmember_input.tpl
では、prefix="order_"になっており、
HTMLの展開形も、生年月日に"order_"が付加されていました。

class:
data/class/pages/shopping/LC_Page_Shopping.php
では、sfCustomerRegisterParamにより、prefix="order_"で展開しています。

    public function lfInitParam(&$objFormParam)
    {
        SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam, 'order_');
        SC_Helper_Customer_Ex::sfCustomerRegisterParam($objFormParam, false, false, 'order_');

        // 不要なパラメーターの削除
        // XXX: 共通化したことをうまく使えば、以前あった購入同時会員登録も復活出来そうですが
        $objFormParam->removeParam('order_password');
        $objFormParam->removeParam('order_password02');
        $objFormParam->removeParam('order_reminder');
        $objFormParam->removeParam('order_reminder_answer');
        $objFormParam->removeParam('order_mailmaga_flg');

        $objFormParam->addParam('別のお届け先', 'deliv_check', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));

        SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam, 'shipping_');
    }

しかし、
data/class/helper/SC_Helper_Customer.php
では、

        // XXX: year,month,dayはprefix付けないのが今のところ共通
        $objFormParam->addParam('年', 'year', 4, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
        $objFormParam->addParam('月', 'month', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
        $objFormParam->addParam('日', 'day', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);

と記述してあります。

非会員購入では、生年月日部分の入力チェック等がされないのではないでしょうか?

追伸:
スマホは、nonmember_input.tplが統合されていないので、"order_"がついていません。
habu
投稿日時: 2013/9/30 15:47
対応状況: −−−
長老
登録日: 2006/9/15
居住地:
投稿: 277
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
sumida様

ご報告ありがとうございます!

たしかに、非会員購入時に生年月日を指定しても(未登録)となりますね。

開発最新版で再現しましたので、チケットを切っておきました。
http://svn.ec-cube.net/open_trac/ticket/2411

ただ、受注管理画面では、生年月日欄がありませんので、修正方法は要確認ですね。
(受注管理画面では、性別、職業欄も表示されていません)


----------------
株式会社システムフレンド
羽生 賢太郎(Kentaro Habu)
改造専門店・EC-CUBE工房

sumida
投稿日時: 2013/12/9 13:19
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
チケットがコミットされていますが、
私の報告した内容と違っていましたので、
改めて説明します。

PC画面での事象です。

・v2.12では、非会員購入の注文者情報には、'order_'を付加していると思います。
  ただし、生年月日には、'order_'が付加されていません。
  (何らかの意図があるようです。)
・v2.13では、非会員購入の注文者情報の生年月日にも'order_'が付加されるようになりました。
  (from_personal_input.tplに統合されたため)

現状では、生年月日が、
・PC画面では、'order_'が付加される。(v2.13で変更となった部分)
・スマホ画面では、'order_' が付加されない。
・入力値をチェックするSC_Helper_Customer.php 関数sfCustomerRegisterParamでは、'order_'が付加されない。

        // XXX: year,month,dayはprefix付けないのが今のところ共通
        $objFormParam->addParam('年', 'year', 4, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
        $objFormParam->addParam('月', 'month', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
        $objFormParam->addParam('日', 'day', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);



つまり、登録された生年月日の扱いではなく、「登録される生年月日が妥当性チェックを、スルーしているのではないか」ということです。
また、'order_'が付加されたことで、「PC画面で入力された生年月日が、行き場を失い無視されている」ということです。
sumida
投稿日時: 2013/12/14 20:08
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
関連する他の部分を、見回してみると、
・スマホ用非会員購入のテンプレート
・SC_Helper_Customer.php(sfGetCustomerData, sfCustomerRegisterParam, sfCustomerRegisterErrorCheckの辺り?)の修正漏れのような気がします。

チェンジセットr23300の修正により、
・PC画面:注文者の生年月日の登録はできるが、関数sfCustomerRegisterParamの修正漏れにより、入力値のチェックは、スルーしている?
・スマホ画面:注文者の生年月日の入力値のチェックは行われるが、登録されない?

追記:
初心に返って、原因を整理しました。対策は、コミッターの方にお任せします。

・会員登録の場合
v2.12.5
会員登録情報のテンプレート form_personal_input.tpl(PC, スマホ共に)には、prefix 指定により、
展開するタグの name に prefix を付加する。(生年月日だけ、prefix は、付加されない。)

v2.13.0
生年月日にも prefix を付加するように変更になっている。

なお、会員登録では、もともと prefix を指定しないため、展開された HTML では、変更点は実害がない。


・非会員の場合
v2.12.5
注文者情報に、独自に'order_'を付加して命名している。(生年月日だけ、'order_'を付加しない。)

v2.13.0(PCだけ)
注文者情報に、会員登録情報のテンプレート form_personal_input.tplを使用するように変更になっている。
注文者情報には、prefix('order_')を指定している。
そのため、生年月日にも、強制的に'order_'が付加される。
sumida
投稿日時: 2014/1/7 16:36
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
こちらの不具合について、チェンジセット23300, 23314 にて修正されていますが、
これらの修正で、

・スマホでの非会員購入の場合、生年月日が無視されているものと、推測します。
shutta
投稿日時: 2014/6/4 0:24
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
古いスレッドを掘り起こしてすみません。

残りのスマホでの非会員購入の場合に関して、

チェンジセット 23429
http://svn.ec-cube.net/open_trac/changeset/23429

がコミットされておりますが、こちらで対策されているという理解でよろしいでしょうか?

お手数ですが、ご確認頂けますと助かります。


----------------

リゾート会員権(エクシブ等)の売買・仲介

sumida
投稿日時: 2014/6/4 10:16
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
たぶん、対策されたと思います。
テンプレート以外の部分(classファイル等)には、「order_」付加で統一されていたと思うので、積み残しはスマホ用のテンプレートだけだったような気が。
shutta
投稿日時: 2014/6/4 12:03
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: v2.13.0 非会員購入:生年月日の入力チェック等がされていない。
早速のご確認有難うございます。
情報・コードが入り組んでいて正確に汲み取れていないかもしれないと思いまして、直接確認させて頂きました。
ご協力ありがとうございました。


----------------

リゾート会員権(エクシブ等)の売買・仲介

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,077名です
総投稿数は102,130件です

投稿数ランキング

1
seasoft
7333
2
468
3078
3
AMUAMU
2712
4
nanasess
2180
5
umebius
2030
6
yuh
1612
7
red
1453
8
h_tanaka
1090
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.