alterの注文情報、商品一括登録の文字化け(php5,mysql5)
2009年9月 9日 Posted by saga
先日行ったalterのphp5化作業。
管理画面より注文情報と商品一括登録などができますが、そのままでは文字化けしてしまいました。
mysql5でoscommerce alterの文字コードをujisに設定。
apacheも確かeuc-jpに設定して、各ディレクトリごとに文字コードを指定していました。
それでも文字化けしてたんでとりあえず、
admin/orders_csv_exe.php
の一番最初の行に
ini_set(‘mbstring.http_output’, ’pass’);
を追加することで文字化けを回避しました。
osCommerce alter PHP5化 MySQL5化
2009年8月 29日 Posted by saga
この前の記事に対して問い合わせが結構あったので、osCommerce alter をとりあえずphp5・MySQL5で動かす手順をご紹介します。
まずは php5に対応する作業です。
もう既にネット上に情報がたくさんあるのですが、要は
①$this でアサインされているものの this を取り除く作業
②.htaccessの修正
③PHPのsafe_modeをOffにする
①は以下の内容を修正します。
(左修正前、右修正後)
$this->h_smarty_obj → $h_smarty_obj
$this->smarty_obj → $smarty_obj
$this->box_smarty_obj → $box_smarty_obj
$this->np_smarty_obj → $np_smarty_obj
$this->fe_smarty_obj → $fe_smarty_obj
$this->f_smarty_obj → $f_smarty_obj
$this->h_smarty_obj は includes/header.php に、 f_smarty_obj… は includes/footer.phpに、、、といった具合に修正していくわけですが、できれば phpエディター などの全文検索ができるPHPエディタなどで全文検索し、漏れが無いようにします。
漏れがあると htaccess の display_errors を On にしていると教えてくれますので、その都度修正しましょう。
②の.htaccessはphp4用にコーディングされたものでもphp5で動くようにしたり、文字コードUTF-8が主流の中でEUCで動かしたりしたいという内容を記述します。
AddDefaultCharset EUC-JP
php_flag output_buffering Off
php_flag register_globals On
php_flag register_long_arrays On
php_flag display_errors Off
php_value default_charset EUC-JP
php_value mbstring.detect_order auto
php_flag mbstring.encoding_translation Off
php_flag mbstring.func_overload Off
php_value mbstring.http_input auto
php_value mbstring.http_output EUC-JP
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.language Japanese
php_flag mbstring.strict_detection Off
php_value mbstring.substitute_character none
php_value session.referer_check www.ショップURL.com
③が一番の問題です。
safe_mode は共有サーバーなどでは変更ができないからです。
自分でサーバーを立てていたり、専用サーバーなら safe_mode をOffにすればいいのですがそういう人が全てではありません。
こういう時は phpをCGIモードで動かすという手があります。
htaccessファイルに記述を増やすのですが、これは検証していません。
AddHandler application/x-httpd-phpcgi .php
↑これはPHPをWEBサーバーのモジュールとして動かすのではなくてCGIとして読み込んで使用するという設定になります。
どなたかosCommerce alterをこれでやった人いませんかね?
てか今度試してみます。
次はMySQL5でも動くようにします。
実は問い合わせはこれが一番多いものでした。
これは以前にosCommerce alterのMLで掲載されたものを参考にしています。
(簡単に言うとコピペです。入力が面倒だった。。。)
以下のファイルの from ~ left join 間を () で括る。例 from ( ~ ) left join
account_history.php
advanced_search_result.php
checkout_process.php
default.php
products_new.php
product_reviews_info.php
product_reviews.php
popup_image.php
includes/classes/order.php
includes/modules/featured.php
includes/functions/general.php
includes/boxes/manufacturer_info.php
admin/languages.php
admin/orders.php
admin/products_attributes.php
admin/orders_csv.php
admin/customers.php
admin/includes/functions/general.php
admin/geo_zones.php
admin/edit_orders.php
admin/popup_image.php
admin/tax_rates.php
ありがとう、白石さん^^;
さて、実は問い合わせというのは
「left join 間をどうやって()でくくるのか?」
ということでした。
left join はMySQLに投げるクエリーの中で使われています。
たとえばdefault.php内の具体的なものではこんな感じです。
// We show them all
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, p.products_qda, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (( ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_PRODUCTS . ” p ) left join ” . TABLE_MANUFACTURERS . ” m on p.manufacturers_id = m.manufacturers_id, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c ) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . $languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;// alter200712
}
from ( ******** ) left join という風に区切るんですが、複数になった場合は↑の例のように
from (( *********) left join ********* ) left join
↑このようにくくります。
てか長々とMLからコピペして書かなくても最後の数行だけでよかったような。。。
結局alter。。。
2009年8月 24日 Posted by saga
ショッピングサイトをサーバーから構築する依頼がありました。
トップページ
ショッピング
ショッピング2
商品紹介
FAQ
コミュニティ
↑こんな感じです。
用意されていたのはDellのサーバーでした。
サポートされているOSは有料のLinuxばかり。。。
とりあえずVine Linuxを入れてみました。
動くのは動いたのですが、GUIの表示ができたりできなかったり。
とりあえずCUIで起動させてGUIを使いたいときは切り替えるようにしました。
クライアントの話を聞いているとosCommerceあたりが一番適しているように思えたので、MySQLをリビルドし4.0をインストール。
PHPも4系にしました。
しばらく動かしていると、、、やっぱPHP5、MySQL5にしたい^^;
だってコミュニティにXOOPS、FAQにPHPMyFAQ入れようとしたらそうだもんなぁ。
なのでalterをとりあえずPHP5、MySQL5で動くように設定。
サーバーから構築しているのでSafeModeの設定なども楽にクリアできます。
あとはモバイル。
無料で配布されている osCommerce プラスモバイル をダウンロード。
モバイル版もphp5対応がリリースされています。
それをalter用にカスタマイズ。
結局またosCommerce^^;
1個くらいはMagentoとかで組みたいなぁ。
今回作ったphp5,MySQL5版のosCommerce alterはクライアント用に作成したものではなく、こちらで準備したものなので配布でもしようかなと考えてみたんですが。。。
共有サーバーなんかに入っている人は register_globals がonにできなかったりするだろうからどうしても限定的になってしまいます。
alterが入っているディレクトリだけonにしてますが、これもコーディングやり直したいですねぇ。
サーバーから作る場合、よく言われるのが
「セキュリティは大丈夫なの?」
ということです。
100%安心なサーバーなんてありませんが、少なくとも今回のクライアントが以前使用していた共有サーバーよりかはマシかと^^;
ポートも最小限(というかメールとWEBだけ)しか解放してないし、ウィルスソフトも入れてます。
セキュリティの心配する前にパスワードをしっかり作ってくれと思いましたw
ふと思ったこと
2009年8月 5日 Posted by saga
ひさしぶりのブログです。
最近はsyoujiさんがうるさくて新サーバーへのアップするファイルを作らされてます。
思ったのですが、osCommerce alterを今現在使用している人は何人くらいいるんだろう。
ていうのもMLも新規にメンバー登録できないし、もうML自体もメール来ないし。
やっぱphp4 mysql4が原因でしょうねぇ。
php5 MySQL5バージョン作ってみましたが、いまいちって感じです。
とりあえず動いてるみたいな。
なんでもsyoujiさんは新いカートシステムを構築中だとか。
配布とかじゃなくてクライアントの要望らしいですが、いちから作るのって手間ですよねー。
alter版アフィリエイトモジュールリリース中止のお知らせ
2009年7月 17日 Posted by saga
以前からこのサイトで 配布するぞ 配布するぞ と言っていた osCommerce alter版 アフィリエイトモジュールですが、このたび配布をとりやめることにしました。
というのも、php4で書かれているベースのオープンソースだし、特に問い合わせもないので^^;
最大の理由は私自身が使用していないということです。
またクライアントのサイトでは使用していますが、今はあまりアフィリをやるという人も少ないようなので。
そろそろ新しいカートシステムを作ろうと思ってます。
こちらは公開しませんが^^;
今後、何かいいものが出来上がればこのサイトで配布することもあるかもしれません。

