PHP版プロフィールメーカー5

2005年07月19日 | PHP+DB
PHP版プロフィールメーカーは、CGI版と同価格の6,000円で販売いたします。PHP版が欲しい~って方はこちらをどうぞ。

でも、CGI版、PHP版どっちがいいの~?・・・なんて声が聞こえてきそうですので、私なりに選ぶ基準をまとめてみますと・・・

1,好み。好きならそれでいいじゃない(笑)。出来ることに違いはありませんので。あとは、これまでにお話しした仕様の違いも含めて「好み」ですね。

2,近いうち、あるいは将来的にでもデータベースを利用したカスタマイズをされる予定があるんでしたら、PHP版で決まりです。Perlでのデータベースはお受けしておりませんので。

とまぁ、こんな感じですかね。テンプレートにも違いはありませんので、ページデザインの面でもどちらを選ばれても構わないと思います。

PHP版プロフィールメーカー4

2005年07月19日 | PHP+DB
CGI版とPHP版との違い・・・を見ていく前に、実物はこちら。
CGI版 PHP版
パスワードは、共に「zonch」っす。

では、違いです。
1,CGI版は更新時にhtml作成。PHP版は表示の度に作成
 これについては前回お話しましたね。プロフィールページだけでなく一覧ページも同様です。

2,CGI版には全ページ更新がありますが、PHP版にはありません。
 これは1とも大いに関連があります。まず、全ページ更新というのは、「プロフィールページを全て一度に更新する」処理のことです。なぜこれが必要かと言いますと、ページ作成後にテンプレートを書き換えた場合、それに合わせて作成済みの全てのページを更新しなければならないからです。10ページ作っていたら10ページ、50ページなら50ページ分更新しなければなりませんので、1ページずつやっていたら・・・気が遠くなりそう・・・。
とまぁ、ここまでお話しすればお気づきとは思いますが、表示の度にページを作成するPHP版では、全ページ更新はいらないってことになりますね。テンプレートを入れ替えれば即反映です。

実は、PHP版で全ページ更新が出来ない理由がもう一つあります。それは、データベース用カスタマイズのベースとなるという目的があるからです。数千件や数万件の規模で全ページ一度に更新なんて、負荷が大きすぎてさせられませんからね~。

3,CGI版には一覧表作成(ボタン)がありますが、PHP版にはありません。
理由は2と同じですね。表示する際に作成するなら、あえて作成する操作は必要ありません。

結局のところどこが違うかというと、1につきるってことになりますかね。まぁ、PHPに「移植」したわけですから、理由があって違うところ以外は同じってことですね。

PHP版プロフィールメーカー3

2005年07月18日 | PHP+DB
PHPとPerlの違いについて考えてみた。
Perlは、プログラミング言語って感じ。PHPがそうじゃないという意味ではなくて、Perlはプログラムで処理した結果をhtmlとして返すという感じ。だから、最終結果を返すところまでは、ある意味webだとかどうとかいうことは一切関係ない。それに対してPHPは、htmlの中にスクリプト(プログラム)を埋め込むって感じ。だから、htmlしか書いてない(プログラム的処理を何もしていない)PHPだって存在しうる(意味はないけど)。もちろん、PHPだってPerlの様に書くことも出来るんで、あくまで基本的な設計思想で分けるとってお話。

とここまで考えると、CGI(Perl)版プロフィールメーカーの「ページを作成してhtmlとしてサーバに書き込む」という仕様は、およそPHPらしくないって思えるようになった。PHPなら、「ページそのものがPHP」として使うのが正当なんだろうね。これはCGIで言うと、毎回ページを作成して表示することに相当するするんだけど、まぁPHP自体がそもそもCGIより負荷が小さいんで、これはこれでいいのかなっと。

さて、そんなこんなで仕様の確定したPHP版プロフィールメーカーは、こちらです。解説は次回から~。

PHP版プロフィールメーカー2

2005年07月17日 | PHP+DB
ローカルで動いていたものが、サーバ上では正常に動いてくれません。
fopen(): SAFE MODE Restriction in effect・・・

とかいうエラーが出ます。何すか、SAFE MODEって?

fopen()のところで起きてるんで、ファイルの読み書きの際に起きていることはわかります。調べてみると、プロフィールページが作成されてません。パーミッションのせいかと思っていじってみたが変化無し。さらによく調べてみると・・・

/profPHP/(プロフィールメーカーのディレクトリ。FTPで作成)
 ┣list.html(CGIが作成する一覧ページ。これは作成される)
 ┣/AAA/(CGIが作成するディレクトリ。これは作成される)
   ┣index.html(CGIが作成するプロフィールページ。これが作成されない

なるほど・・・CGIが作成するディレクトリには書き込み出来ないってわけですか・・・うちのローカル環境では問題ないのに・・・調べてみると、SAFE MODEってのはインストール時の設定であって、スクリプト側でどうこう出来るものではないらしい(つまり、うちのサーバとローカルとでは設定が違う)。しかも、レンタルサーバでは、安全のためSAFE MODEにされていることが多いらしい。するって~と何かい?CGI版と同仕様じゃ環境依存してダメってこと?

ははは、どうすっぺか・・・(つづく)。

PHP版プロフィールメーカー1

2005年07月17日 | PHP+DB
さて、しばらくは日記というより回顧録(?)になります。だって、ものはもう出来てるしっ!作ってる最中にブログ始めておけばよかった・・・などと思っても後の祭り。

データベース版プロフィールメーカーを作るにあたって、まずそのベースとなるようにPHP版から作ることにしました。データベースってデータの読み書きの方法の一つに過ぎないんで、それ以外の部分(表示とか)は変わらないからね。

CGI(Perl)版のプロフィールメーカーというのは、プロフィール「ページ」を作るソフトになってます。もっとはっきり言うと、ページを表示するたびに毎回CGIを呼び出すのではなく、ページを更新する際にhtmlを作成してしまうという仕様になっています。なぜそうなっているかというと、プロフィールページというのは、更新頻度がそう高くないから。ほとんど更新されないのに毎回ページを作成して表示するのは無駄(負荷)だからです。

PHP版も、CGI版と同仕様にしようと思って作り始め、ローカル環境では全く同等にすることが出来ました。で、「よっしゃ!」と思ってサーバにあげてみると・・・・(つづく)。

拡張子の後の「/」って・・・

2005年07月13日 | CGI/PHP
URLの中の「/」っていうとファイルまでの階層(ディレクトリ)を表すもの・・・でも拡張子(つまりファイルに行き着いた)の後に「/」ってどういうこと?

前々から気になっていたんですが、よ~やく調べてみました。そのものズバリなんてページは見つかりませんでしたが、何となくわかったところで実際に試してみたら判明。

拡張子の後の「/」は、PATH_INFOです。環境変数$ENV{'PATH_INFO'}なんかで取得出来ます。試しに
http://www.zonch.net/CGI/test/path.cgi
だとPATH_INFOは空ですが、
http://www.zonch.net/CGI/test/path.cgi/aaa/bbb/
とするとセットされていることがわかると思います。

結局のところ、変数の一つの渡し方ってことですね。これがないとどうしてもダメってこともないでしょうが、これが便利なこともあるでしょう。

こんなん常識?私は知らなかったけど・・まぁ、必要にならないと調べない質なんで。と言うより、必要に迫られて調べたり考えたりして得た知識に勝るものはないと思っているので、必要ない時は基本的に放っておきます。怠け者なんで(笑)。まぁ、それはつまり、今回よ~やく必要になるかもという意味でもあるんですけどね。

いきなりサボりかよっ!

2005年07月03日 | Weblog
時間もあることだしブログでも始めよっかなぁ、などと思って開始したはいいものの・・・開始したとたんに忙しくなってしまいました。忙しい=仕事があるというのは、こんなにありがたい話はありませんので、仕事をくださった全ての方々に深~く感謝いたします。

でもまぁ、慢性的に忙しいなんて経験は未だかつてありませんので、そのうち暇な時期が来るんでしょうねぇ。いつも「それなりに」(←ここ大事なとこっ(笑)!)は忙しくしていたいものですが・・・。