バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品登録ができない(画像がアップされない)

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sdw
投稿日時: 2014/8/30 2:46
対応状況: −−−
新米
登録日: 2014/7/22
居住地:
投稿: 5
商品登録ができない(画像がアップされない)
【至急回答頂けると助かります】
EC-CUBEバージョン
2.13.1

DBバージョン
PostgreSQL 9.2.4

レンタルサーバー
EC-CUBEクラウド

現象は急に出るようになりました。
商品登録時に各項目を入力し、「この内容で登録する」と進みますが、ボタンを押すとブラウザのアドレスバーの更新状態が途中で止まり、先に進みません。
仕方なく「前のページに戻る」を押して商品マスターを見ると、商品はアップされてるのですが、肝心の画像が「×」になっており表示されません。
以下、何度試しても同じ現象になってしまいました。
他のPCから試しても同じです。
画像のみ登録されない状態です。

エラーログは以下の通りです。
Warning(E_WARNING): Invalid argument supplied for foreach() on [/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php(825)]

エラーの解決法はあるのでしょうか?

申し訳ありませんが、ご教授頂けると助かります。
宜しくお願い致します。
yuh
投稿日時: 2014/8/30 3:09
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品登録ができない(画像がアップされない)
LC_Page_Admin_Products_Product.php

lfSaveUploadFilesの多分788行目

                    && !$this->lfHasSameProductImage($product_id, $arrImageKey, $arrSaveFile[$key])




                    && !$this->lfHasSameProductImage($product_id, $arrImageKey, $arrSaveFile[$key],$objUpFile)


に変更

public function lfHasSameProductImage($product_id, $arrImageKey, $image_file_name)




public function lfHasSameProductImage($product_id, $arrImageKey, $image_file_name,$objUpFile)

に変更

多分825辺りの

        $arrKeyName = $this->objUpFile->keyname;




        $arrKeyName = $objUpFile->keyname;

に変更
で動きませんか?
yuh
投稿日時: 2014/8/30 3:11
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品登録ができない(画像がアップされない)
纏めると

    public function lfSaveUploadFiles(&$objUpFile, &$objDownFile, $product_id)
    {
        // TODO: SC_UploadFile::moveTempFileの画像削除条件見直し要
        $objImage = new SC_Image_Ex($objUpFile->temp_dir);
        $arrKeyName = $objUpFile->keyname;
        $arrTempFile = $objUpFile->temp_file;
        $arrSaveFile = $objUpFile->save_file;
        $arrImageKey = array();
        foreach ($arrTempFile as $key => $temp_file) {
            if ($temp_file) {
                $objImage->moveTempImage($temp_file, $objUpFile->save_dir);
                $arrImageKey[] = $arrKeyName[$key];
                if (!empty($arrSaveFile[$key])
                    && !$this->lfHasSameProductImage($product_id, $arrImageKey, $arrSaveFile[$key],$objUpFile)
                    && !in_array($temp_file, $arrSaveFile)
                ) {
                    $objImage->deleteImage($arrSaveFile[$key], $objUpFile->save_dir);
                }
            }
        }
        $objDownFile->moveTempDownFile();
    }

    /**
     * 同名画像ファイル登録の有無を確認する.
     *
     * 画像ファイルの削除可否判定用。
     * 同名ファイルの登録がある場合には画像ファイルの削除を行わない。
     * 戻り値: 同名ファイル有り(true) 同名ファイル無し(false)
     *
     * @param  string  $product_id      商品ID
     * @param  string  $arrImageKey     対象としない画像カラム名
     * @param  string  $image_file_name 画像ファイル名
     * @return boolean
     */
    public function lfHasSameProductImage($product_id, $arrImageKey, $image_file_name,&$objUpFile)
    {
        if (!SC_Utils_Ex::sfIsInt($product_id)) return false;
        if (!$arrImageKey) return false;
        if (!$image_file_name) return false;

        $arrWhere = array();
        $sqlval = array('0', $product_id);
        foreach ($arrImageKey as $image_key) {
            $arrWhere[] = "{$image_key} = ?";
            $sqlval[] = $image_file_name;
        }
        $where = implode(' OR ', $arrWhere);
        $where = "del_flg = ? AND ((product_id <> ? AND ({$where}))";
        $arrKeyName = $objUpFile->keyname;
        foreach ($arrKeyName as $key => $keyname) {
            if (in_array($keyname, $arrImageKey)) continue;
            $where .= " OR {$keyname} = ?";
            $sqlval[] = $image_file_name;
        }
        $where .= ')';

        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $exists = $objQuery->exists('dtb_products', $where, $sqlval);

        return $exists;
    }

こんな感じです。

同名画像ファイルのチェックを省くだけでも解決するかもしれないですが、念のため。
sdw
投稿日時: 2014/8/30 10:16
対応状況: −−−
新米
登録日: 2014/7/22
居住地:
投稿: 5
Re: 商品登録ができない(画像がアップされない)
yuh様

対応ありがとうございます。
変更してみましたが、改善されませんでした。

しかし、進展がありました。
登録作業後エラーログを見ると、
Warning(E_USER_WARNING): ホスト名不一致を検出。リダイレクト実行。要求値='ssl.当サイトアドレス.com' 設定値='当サイトアドレス' リダイレクト先='https://当サイトアドレス/products/detail.php?product_id=80' on [/data/class/SC_Initial.php(544)]

同時に以下のエラーの出力されました。
Fatal error(E_USER_ERROR): on [/data/class/SC_Response.php(193)]
customer_id =
/doc_root/products/detail.php(24): require_once
/doc_root/require.php(35): require_once
/data/require_base.php(31): require_once
/data/app_initial.php(50): SC_Initial->init
/data/class/SC_Initial.php(60): SC_Initial->normalizeHostname
/data/class/SC_Initial.php(547): SC_Response->sendRedirect
/data/class/SC_Response.php(193): trigger_error

サイトが独自sslに対応していなかったので、config.phpや、
パラメータ設定の
SHOPPING_URLから
MYPAGE_DELIVADDR_URLPATHの「HTTP_URL」や「ROOT_URLPATH」を一時的に「HTTPS_URL」に変更したりしました。

今は元に戻しているのですが、その辺りで不具合を起こしたのでしょうか?

yuh
投稿日時: 2014/8/30 12:11
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品登録ができない(画像がアップされない)
ホスト名が正しく設定されているか確認してください。
sdw
投稿日時: 2014/8/30 12:43
対応状況: −−−
新米
登録日: 2014/7/22
居住地:
投稿: 5
Re: 商品登録ができない(画像がアップされない)
yuh様

ありがとうございます。
config.phpにて、
define('HTTP_URL', 'http://当サイトアドレス/');
define('HTTPS_URL', 'https://ssl.当サイトアドレス/');
に設定しました。

その後、
商品登録をしましたが、やはり完全に登録ができません。
(現象は最初と変わらず)

試しに画像無しで新規商品登録を行いました。
やはり、「この内容で登録する」を押すと更新が固まってしまいます。

エラーログはこの際出力されませんでした。

実際にホームページを見てみると、「公開」にした商品は登録できてるのですが、
画像が登録されない、カテゴリーに追加しても、カテゴリーの商品カウントがされてない。

実際にホームページを確認して頂いた方がわかりやすいかもしれません。
http://hidear-zoot.com

カテゴリ トライアスロンスーツ(48)となっていますが、中を見ると51件登録になっています。
エラーが出るようになってから登録した3件分がカウントされていません。

申し訳ございませんが、ご教授願います。

yuh
投稿日時: 2014/8/30 16:18
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品登録ができない(画像がアップされない)
まずはSSLのページにアクセスしたときに出るシステムエラーを修正した方がいいかもしれないです。
sdw
投稿日時: 2014/8/30 19:18
対応状況: 解決済
新米
登録日: 2014/7/22
居住地:
投稿: 5
Re: 商品登録ができない(画像がアップされない)
yuh様

ありがとうございます。

商品登録の件、解決しました!

解決方法は、動作がおかしくなってから登録した商品を全て削除したら正常に動作するようになりました。
DBで何かしらおかしいデータが登録されてしまったのかもしれません。
phpPgAdminでDBを見ましたが、どの部分かは把握できませんでした。

一応変更したソースコードは元に戻しました。

お手数をおかけして申し訳ありませんでした。

独自SSL対応の部分でまだトラブルが残っていますが、この質問は解決とさせて頂きます。

本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,678名です
総投稿数は109,930件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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