バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > /shopping/delivで「新しいお届け先を追加する」で登録できない件

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
zenta
投稿日時: 2018/11/8 8:03
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 57
/shopping/delivで「新しいお届け先を追加する」で登録できない件
大変お世話になっております。

下記のスレッドと同じ現象が同じバージョン2.12.5で発生している様でございます。

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=15586&forum=10&post_id=69675#forumpost69675

xxxxx.com/shopping/deliv.phpにある”新しいお届け先を追加する”ボタンをクリックし、開いたポップアップページ(xxxxxx.com/mypage/delivery_addr.php?page=/shopping/deliv.php) に氏名、フリガナ、住所、電話番号を入力し、”登録する”ボタンをクリックすると、ポップアップウィンドウ自体が次のウィンドウに切り替わり

”一致する別のお届け先がありません。”

と表示され、登録ができない状態でございます。エラーログには以下が記録されております。

[/shopping/deliv.php] Warning(E_WARNING): array_keys() expects parameter 1 to be array, null given on [/xxxxxx/httpdocs/data/class/pages/shopping/LC_Page_Shopping_Deliv.php(144)] from

試しに、関連の以下のphpファイル、htmlファイルなどをプレーンの状態のもの(元ファイル)に換えて試しましたが、同じ状態でございます。

何に問題があるのか、解決策などご教授頂けませんでしょうか。

mypage/delivery_addr.php
LC_Page_Mypage_DeliveryAddr.php
shopping/deliv.php
LC_Page_Shopping_Deliv.php
SC_Helper_Address.php
SC_Helper_Customer.php

delivery_addr.tpl
popup_header.tpl
form_personal_input.tpl

また、xxxxx/mypage/delivery_addr.php?page=/shopping/deliv.phpでvar_dump($_SESSION);を試すと、other_deliv_idは以下になっております。

["other_deliv_id"]=> NULL



EC-CUBE 2.12.5
(データベース) MySQL5.0.77
(WEBサーバ) apache2
(OS) Windows XP
(PHP) 5.0.22
nanasess
投稿日時: 2018/11/8 11:16
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1833
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
data/class/pages/shopping/LC_Page_Shopping_Deliv.php の 144行目付近のコードはどうなっていますでしょうか?


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

zenta
投稿日時: 2018/11/8 12:42
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 57
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
nanasess様

ご教示頂きまして感謝致します。

以下のif (USE_MULTIPLEから始まる行が144行目でございます。

// お届け先複数指定
case 'multiple':
// 複数配送先指定が無効な場合はエラー
      if (USE_MULTIPLE_SHIPPING === false) {
SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
SC_Response_Ex::actionExit();
}

SC_Response_Ex::sendRedirect('multiple.php');
SC_Response_Ex::actionExit();
break;


nanasess
投稿日時: 2018/11/8 13:14
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1833
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
その付近に、 array_keys() が使われている個所ありませんか??


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

zenta
投稿日時: 2018/11/8 14:11
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 57
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件

nanasess様

ご教授頂きまして感謝致します。

144行目のすぐ下にarray_keysがあり、$objPurchaseのgetShippingTempを呼び出し、$_SESSION['shipping'] を使用しようとしている模様ですが、LC_Page_Shopping_Deliv.phpをvar_dump($_SESSION);で調べると、shippingが存在していない様でございます。

どこで設定しているのか分かりませんが、セッションを設定する箇所で私の環境の場合shippingを設定できていないということでしょうか。(違う方向に向かっていたら申し訳ございません)


LC_Page_Shopping_Deliv.php

// お届け先複数指定
case 'multiple':
// 複数配送先指定が無効な場合はエラー
if (USE_MULTIPLE_SHIPPING === false) {
SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
SC_Response_Ex::actionExit();
}

SC_Response_Ex::sendRedirect('multiple.php');
SC_Response_Ex::actionExit();
break;

default:
// 配送IDの取得
$shippingData = $objPurchase->getShippingTemp();
$arrShippingId = array_keys($shippingData);
if (isset($arrShippingId[0])) {
$this->arrForm['deliv_check']['value'] = $arrShippingId[0] == 0 ? -1 : $arrShippingId[0];
}
break;



SC_Helper_Purchase.php

function getShippingTemp($has_shipment_item = false) {
if ($has_shipment_item) {
$arrReturn = array();
foreach ($_SESSION['shipping'] as $key => $arrVal) {
if (count($arrVal['shipment_item']) == 0) continue;
$arrReturn[$key] = $arrVal;
}
return $arrReturn;
}

return $_SESSION['shipping'];
}
nanasess
投稿日時: 2018/11/8 16:48
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1833
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
dtb_session テーブルのデータ型が text 型になっていませんでしょうか?

longtext にすることで解決するかもしれません

https://github.com/EC-CUBE/eccube-2_13/pull/141
http://svn.ec-cube.net/open_trac/ticket/1341


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

zenta
投稿日時: 2018/11/9 2:08
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 57
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
nanasess様

ご教授頂きまして感謝致します。

dtb_sessionのsess_id、sess_dataのデータ型をtext型からlongtext型に変更し試しましたが、新しいお届け先を追加できません。セッションにshippingも存在していない様です。

他に原因があるかもしれませんが、もしこのshippingというセッションが存在しないことが、今回の直接的な原因であるとするならば、

これはどのタイミングで作成されるべきものなのでしょうか(作成を指定しているファイルはどれになるでしょうか)。

私のサイトでは何らかの原因でそれが作成されていないのかなとも考えております。
nanasess
投稿日時: 2018/11/9 9:33
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1833
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
このへんですね。
フォームの値を dtb_order_temp に保存するようになっています。

https://github.com/EC-CUBE/eccube-2_13/blob/eccube-2.12.6/data/class/pages/shopping/LC_Page_Shopping.php#L373-L406

何かプラグインが悪さをしている可能性はありませんでしょうか?


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

zenta
投稿日時: 2018/11/12 0:53
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 57
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
nanasess様、

ご教授頂きまして感謝致します。またご多忙のなか恐縮でございます。

現在、今回の件がdtb_order_tempにどのように関係しているのか調べております。

プラグイン関連に関しては、問題発生のページを考えれば多分決算関連のモジュールなのかなと思われます。(他のプラグインは無効化して試しましたが、関与しておりませんでした)

ただ、このモジュールを無効化ができず、また一時的に削除しようにも関与するファイルが多く、なかなか削除できない状態です。

そこで、このモジュールを無効化、あるいは削除することなく、今回の問題を解決する手段があるかどうか思案しておりまして、

例えば、このモジュールがそのshippingというセッションの作成を阻んでいる、あるいはshippingを消去しているのが今回の問題の原因だと思われますが、

eccube側から力技でshippingを作成する設定にする、あるいはeccube側からこのモジュールのshippingを消去する設定を削除するような設定にするなどなのですが、可能だと思われますか。
nanasess
投稿日時: 2018/11/12 9:16
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1833
Re: /shopping/delivで「新しいお届け先を追加する」で登録できない件
data/class/pages/Shopping/LC_Page_Shipping.php の lfRegistData で、フォームのデータを dtb_order_tempに格納しています。

このあたりのプログラムが動いているかチェックすると良いと思います。


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

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


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は35,014名です
総投稿数は88,157件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1833
4
yuh
1521
5
468
1287
6
red
1186
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
587
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.