[Tep-j-general] Re: ニューズモジュールでシンタックスエラー

Back to archive index

hamada bungu****@leo*****
2006年 9月 12日 (火) 17:12:23 JST


こんにちわ。

On Tue, 12 Sep 2006 14:48:00 +0900
高橋  <ttaka****@ybb*****> wrote:

> 以下のはまださんのご指摘をつらつら考えてみたのですが、私の
> 場合MS2ではありませんので、その辺が怪しいのではと思い始め

あ、MS2でもないんですね。当方の早とちり(^_^;)

> 当方の環境は、osCommerce 2.2 日本語版(osCommerce 2.2 MS1 
> 日本語版ではありません)です。

つまり、tep_snapshot-japanese-20021202とかなんだ。

見比べてみたトコロ、MS1/MS2と20021202版では、tep_db_perform()の処理が異
なってます。結構コードが違う。

ということで、件のContributionを20021202版で動かそうと思うと、自分でそれ
なりに手を入れないといけないのではないかと。

内部で使用してる関数の処理が違ってるので、自前でその辺を吸収してやんない
と、正常に動作しないでしょう。

たぶん、$HTTP_POST_VARSで値を受け取る処理を付け加えれば良いと思います。
受け取った値をそのまま流さず、適当に加工して流すように。

対症療法として、スクリプト内にMS1JやMS2のtep_db_perform()を、ちょっと名
前を変えて移植→これを使うという手もありますか。

これでちゃんと動くかどうかは、実際にやってみないと解りませんが。

tep_db_perform()の件の部分。

20021202版>
>         if (is_string($value)) {
>           if ($value == 'now()') {
>             $query .= 'now(), ';
>           } elseif ($value == 'null') {
>             $query .= 'null, ';
>           } else {
>             $query .= '\'' . tep_db_input($value) . '\', ';
>           }
>         } else {
>           $query .= $value . ', ';
>         }

↑この「else」に引っかかってるんですな。


MS1>
>         switch ((string)$value) {
>           case 'now()':
>             $query .= $columns . ' = now(), ';
>             break;
>           case 'null':
>             $query .= $columns .= ' = null, ';
>             break;
>           default:
>             $query .= $columns . ' = \'' . tep_db_input($value) . '\', ';
>             break;
>         }


MS2>
>         switch ((string)$value) {
>           case 'now()':
>             $query .= 'now(), ';
>             break;
>           case 'null':
>             $query .= 'null, ';
>             break;
>           default:
>             $query .= '\'' . tep_db_input($value) . '\', ';
>             break;
>         }


はまだ




Tep-j-general メーリングリストの案内
Back to archive index