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; > } はまだ