バグ報告 > フロント機能 > 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ytanaka |
投稿日時: 2014/8/29 20:13
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 東京 投稿: 23 |
会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 初めまして。
ytanakaと申します。 商品購入時に生年月日の記入を必須にしたいと思い、 data/class/helper/SC_Helper_Customer.php の生年月日記入欄に EXIST_CHECK を入れたのですが、それから会員登録をしてみたところ、以下のようなエラーメッセージが出てしまいました。 MDB2 Error: no such field _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_mysql_16dedb05095c41ceec464752c08dd0d8071380146c USING @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20, @21, @22, @23, @24, @25, @26, @27, @28, @29, @30, @31, @32] [Native code: 1054] [Native message: Unknown column 'year' in 'field list'] 恐らくDB上にyearというカラムがないという意味だと思うのですが、 どのように対処すればよいかわかりません。 どうかご教授いただけませんでしょうか。 よろしくお願いします。 ※サーバー環境 EC-CUBE 2.13.0 PHP:PHP 5.4.29 DB:MySQL 5.5.38-log |
yuh |
投稿日時: 2014/8/29 22:22
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 おそらく、addParamでyearを設定する部分にEXIST_CHECKを入れた際に
array('EXIST_CHECK','NUM_CHECK', 'MAX_LENGTH_CHECK') このように設定せずに 'EXIST_CHECK',array('EXIST_CHECK','NUM_CHECK', 'MAX_LENGTH_CHECK') このような形で設定してしまったのが原因と思われます。 正しくEXIST_CHECKが行われているか確認してください |
kuro_r |
投稿日時: 2014/8/29 22:26
対応状況: −−−
|
常連 登録日: 2014/8/7 居住地: 投稿: 32 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 ytanaka様
商品購入時に生年月日の記入を必須にするのであれば data/class/helper/SC_Helper_Customer.php の生年月日記入欄に EXIST_CHECKを入れるだけでは実現できないと思います。 商品購入ということは、受注情報作るということですので、 dtb_order等の受注情報テーブルに対しても考慮が必要です。 data/class/page/shopping内のソース等も見てみてはいかがでしょうか? 上記を考慮済みで、Helper以外のソースも変更されているのであれば、 その内容を詳しく書かれるとよいかと思います。 |
yuh |
投稿日時: 2014/8/29 22:35
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 おそらくaddParamの変数の追加で一つ値がずれて7番目のfalseがずれて''が入った上でデフォルト値であるtrueが通ってinput_dbにデータが登録された上で出力されたデータがdtb_customerに渡っていると思われるので、この場合dtb_orderは関係ないです。
|
kuro_r |
投稿日時: 2014/8/30 9:39
対応状況: −−−
|
常連 登録日: 2014/8/7 居住地: 投稿: 32 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 ytanaka様
的外れな回答をしてしまったようです。 申し訳ありません。 yuh様 ご解説いただきありがとうございます。 勉強になります。 |
ytanaka |
投稿日時: 2014/8/30 9:47
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 東京 投稿: 23 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 yuh様、kuro_r様
ご返信ありがとうございます。 SC_Helper_Customer.php の変更点としては、 // XXX: year,month,dayはprefix付けないのが今のところ共通 $objFormParam->addParam('年', 'year', 4, 'n', array('EXIST_CHECK','NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('月', 'month', 2, 'n', array('EXIST_CHECK','NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('日', 'day', 2, 'n', array('EXIST_CHECK','NUM_CHECK', 'MAX_LENGTH_CHECK')); のように「EXIST_CHECK」を入れました。 また、非会員のお客様にも生年月日を必須にしたいと思い、いくつか書き加えました。 気になった点としては、 /** * 会員登録編集共通の相関チェック * * @param SC_CheckError $objErr SC_CheckError インスタンス * @param boolean $isAdmin 管理画面チェック時:true * @return SC_CheckError $objErr エラー情報 */ public function sfCustomerRegisterErrorCheck(&$objErr, $isAdmin = false) { $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); $objErr->doFunc(array('パスワード', 'password', PASSWORD_MIN_LEN, PASSWORD_MAX_LEN) ,array('NUM_RANGE_CHECK')); if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) { if (!$isAdmin) { $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', 'email02') ,array('EQUAL_CHECK')); } $objErr->doFunc(array('パスワード', 'パスワード(確認)', 'password', 'password02') ,array('EQUAL_CHECK')); } の、 $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); の部分にも一度「EXIST_CHECK」を入れたので(現在は消しました。)、これが関係しているのかなとも思っています。 また、 data/class/pages/shopping/LC_Page_Shopping.php の中の、 // 複数項目チェック $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'order_email', 'order_email02'), array('EQUAL_CHECK')); return $objErr->arrErr; } 部分の $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); にも array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'SPTAB_CHECK','CHECK_BIRTHDAY')) と入れてみた(現在は削除しました。)のも関係しているのかなとも思っております。 「EXIST_CHECK」の確認以外に、どのようなことを行えばよいでしょうか。 お手数をおかけしますが、何卒よろしくお願いします。 |
ytanaka |
投稿日時: 2014/8/30 11:25
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 東京 投稿: 23 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 他にも問題が出てきてしまいました・・・
非会員のお客様がお客様情報入力ページで必要事項を打ち込んだ後に、お届け先の指定ページへ移動するボタンを押すと、同じページに戻ってきてしまうようになりました。(お客様情報入力ページ) どこを修正すればよいでしょうか・・・? |
yuh |
投稿日時: 2014/8/30 12:05
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 最初のエラーの原因は
この部分でパラメータの受け渡しで
まず一旦デフォルトの状態にもどした方がいいです その上でSC_Helper_Customer.phpのsfCustomerRegisterParamの中を
下記のように変更します。 LC_Page_Shopping.phpのlfCheckErrorに対して
上記の項目を追加すれば生年月日必須になると思います。 |
ytanaka |
投稿日時: 2014/9/3 10:40
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 東京 投稿: 23 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 yuh様
返信が遅くなり申しわけありません。 具体的な改善方法をお教え頂き、本当にありがとうございます。 上記の修正を行ってみます。 また随時ご報告致します。 |
ytanaka |
投稿日時: 2014/9/6 10:49
対応状況: −−−
|
半人前 登録日: 2014/8/29 居住地: 東京 投稿: 23 |
Re: 会員登録完了画面でエラーが出てしまい、修正方法がわかりません。 yuh様
本当にありがとうございます! 上記、SC_Helper_Customer.phpの修正を行ったところ、会員登録ができるようになりました! 本当に助かりました! ありがとうございました! 大変申し訳ないのですが、 もう一点お聞きしたいことがあります。 非会員の方がお客様情報の入力を行い、下部の「上記お届け先のみに送る」か「複数のお届け先に送る」ボタンを押しても次のページに進まず、同じページに戻ってしまうのですが、なぜでしょうか? どこをどのように修正すればよいでしょうか。 ご教授頂ければと思います。 cube/data/Smarty/templates/default/shopping/nonmember_input.tpl の <!--{if $smarty.const.USE_MULTIPLE_SHIPPING !== false}--> <p class="alignC">この商品を複数のお届け先に送りますか?</p> <!--{/if}--> <div class="btn_area"> <ul> <!--{if $smarty.const.USE_MULTIPLE_SHIPPING !== false}--> <li> <input type="image" src="<!--{$TPL_URLPATH}-->img/button/btn_singular.gif" alt="上記のお届け先のみに送る" name="singular" id="singular" /> </li> <li> <a href="java script:;" onclick="eccube.setModeAndSubmit('multiple', '', ''); return false"> <img src="<!--{$TPL_URLPATH}-->img/button/btn_multiple.gif" alt="複数のお届け先に送る" /> </a> </li> <!--{else}--> <li> <input type="image" src="<!--{$TPL_URLPATH}-->img/button/btn_next.gif" alt="次へ" name="singular" id="singular" /> </li> <!--{/if}--> </ul> </div> </form> </div> </div> このあたりと関係しているのではないかと考えています。 お手数をおかけしますが、何卒よろしくお願いします。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |