TAMURA Toshihiko
tamur****@bitsc*****
2004年 1月 21日 (水) 10:09:36 JST
こんにちは、田村です。 "Sachiko M" さん: > この間、田村様から送信されたセキュリティー問題に関するファイルの > 置き換えをしたところ、商品オーダー時のステップの中でお客様の住所等が > 表示される画面でentry_telephoneの値のエラーが出ます。 > > 以前に、電話番号の表示をすることに関して話題になっていたのは覚えてい > るのですが、おそらくそのalterationをしていない私がalterationをされている > ファイルと置き換えたから出たものだと理解しているのですが。。。 osCommerce 2.2 MS1J R2 のときのデータベースの変更ですね。 mysqlコマンドやphpMyAdminが使えない場合は、 次のスクリプトをファイルに保存して 次のような手順でデータベースを更新できると思います。 1. sql.php など、拡張子に .php をつけたファイル名で保存する。 2. $user, $password, $database の'???'の部分を書き換える。 3. スクリプトをサーバにFTPで転送する。 4. そのスクリプトにブラウザでアクセスしてメッセージを確認する。 ------------------------------------------------------------ <html> <body> <? // SQL発行ツール $host='localhost'; // ホスト名 $user='???'; // MySQLのユーザ名 $password='???'; // 上記ユーザのパスワード $database='???'; // 対象のデータベース名 // 発行するSQLの配列 // osCommerce 2.2 MS1J R1 => R2/R3 $a_sql = array( "ALTER TABLE address_book ADD COLUMN entry_telephone varchar(32) NOT NULL AFTER entry_country_id;", "ALTER TABLE orders ADD COLUMN delivery_telephone varchar(32) DEFAULT '' AFTER delivery_country;", "ALTER TABLE orders ADD COLUMN billing_telephone varchar(32) DEFAULT '' AFTER billing_country;", "UPDATE address_format SET address_format='$lastname $firstname$cr$postcode$cr$statename$city$cr$streets$cr$country$cr$telephone' WHERE address_format_id=6;" ); $db_link = mysql_connect($host, $user, $password); if ($db_link) { echo 'Start job.<br>'; mysql_select_db($database); $index = 0; foreach ($a_sql as $sql) { $ret = mysql_query($sql, $db_link); ++$index; if ($ret) { echo '(' . $index . ')'; } else { echo '<br>SQL failed: ' . $sql . " \n"; } } $result = mysql_close($db_link); echo 'End of job.<br>'; } else { echo 'Connect failed.<br>'; } ?> </body> </html> ------------------------------------------------------------ 運用中のサイトで実行しても問題はないと思いますが、 念のためDBのバックアップをとってから試してみてください。 -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamur****@bitsc***** http://www.bitscope.co.jp/