LUNARAVE WEBクリエーターの仕事と休息

アクセスカウンタ

help リーダーに追加 RSS EC-CUBEの商品検索不具合

<<   作成日時 : 2007/02/15 12:41   >>

トラックバック 0 / コメント 4

クライアントのECサイトとしてオープンソースの"EC-CUBE"を利用している。


 EC-CUBE

現在はVPSサーバ"ラピッドサイト"にてカスタマイズテストを行い、各クライアントサーバに実装している。

尚、現在使用しているバージョンは"1.0.2"である。


その中で、登録している商品を検索する際に不具合が見つかった。


まず、「商品管理」→「商品マスタ」から商品IDに数値以外の文字を入力する。

 商品検索


ここで、「aaaa」と入力して検索してみる。
するとPHPのエラーが表示される。

 エラー


ttp://demo.ec-cube.net/admin/products/index.php SELECT COUNT(*) FROM dtb_products WHERE del_flg = 0 AND product_id = ? DB Error: invalid number SELECT COUNT(*) FROM dtb_products WHERE del_flg = 0 AND product_id = 'aaaa' [nativecode=ERROR: invalid input syntax for integer: "aaaa"]



どうやら、SQLでエラーが出ているようだ。

そこで、「/html/admin/products/index.php」を修正する。


[省略]
// エラーチェック
// 入力エラーチェック
function lfCheckError() {
$objErr = new SC_CheckError();
$objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
$objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
$objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
return $objErr->arrErr;
}
[省略]



上記の場所に追記する。


[省略]
// エラーチェック
// 入力エラーチェック
function lfCheckError() {
$objErr = new SC_CheckError();

$objErr->doFunc(array("商品ID", "search_product_id"), array("NUM_CHECK"));

$objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
$objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
$objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
return $objErr->arrErr;
}
[省略]



これで商品IDの入力チェックが可能になったが、エラー表示させるためにテンプレートも変更する。


[省略]
<td bgcolor="#f2f1ec" width="110">商品ID</td>
<td bgcolor="#ffffff" width="194"><input type="text" name="search_product_id" value="<!--{$arrForm.search_product_id|escape}-->" size="30" class="box30" /></td>
[省略]



上記に以下を追記する。


[省略]
<td bgcolor="#f2f1ec" width="110">商品ID</td>
<td bgcolor="#ffffff" width="194"><span class="red"><!--{$arrErr.search_product_id}--></span><input type="text" name="search_product_id" value="<!--{$arrForm.search_product_id|escape}-->" size="30" class="box30" style="<!--{$arrErr.search_product_id|sfGetErrorColor}-->" /></td>
[省略]



動作検証してみると、数値以外はエラー表示されるようになった。

 入力チェック


これは商品検索での対応だが、顧客管理の方は問題なく動作するようだ。


設定テーマ

注目テーマ 一覧

月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(4件)

内 容 ニックネーム/日時
EC-CUBEバージョン:1.1.1
PHPバージョン:PHP 4.4.4
DBバージョン:MySQL 4.1.21
ラピッドサイトのオンラインマニュアル通りにインストールしました。

商品をカゴの中に入れた状態で「かごの中」から商品の購入個数を増減しようとすると「※ 現在カート内に商品はございません。」と表示されます。

旧バージョンやデモサイトではこのような現象は見ることができません。

対処法があればお願いします。
ゲスト
2007/02/20 08:18
こちらでは確認できていないので現象を見ることができればありがたいのですが・・・。
LUNARAVE
2007/02/20 11:48
※参照先が記載されていたのでゲストさんの前記事は削除しました。

参照先を確認しました。
「現在カート内に商品はございません。」と出ますが、個数の増減はされていますね。
「/html/cart/index.php」のsfReload();などページが切り替わる箇所を調べてみてわ。
LUNARAVE
2007/02/21 12:49
解決しました。
ありがとうございました。
ゲスト
2007/02/21 18:56

コメントする help

ニックネーム
本 文
WEB技術関連
EC-CUBE関連
ソフトウェア関連