Code.001 2002年10月05日発行 ■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■ 【 Webプログラミング 】 〜 猫的プログラマーとその軌跡 〜 ■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■ ▼毎週月曜日に配信しています。 ▼等幅フォントでご覧いただくとキレイに見えます。 ▼登録・解除はこちらから可能です。 < http://www.ichikoro.com/webp/ > ※ぜひお友達にもご紹介ください(^^)/ みなさん大変お待たせいたしました! 編集兼ライターの勝部です。 今回から内容的にググッとシンプルになります。 「ファイル処理」「メール」「DB」など一つテーマを決め数回に渡り取り上げ、 その中ですぐに使えるサンプルプログラムを掲載・解説をするという流れです。 購読し続ければ、メールボックスの中にリファレンスが出来上がるという寸法。 勉強している人にはうれしい構成なのです。 え?これまでの連載はって? ご安心ください。Webサイト上で引き続き行っていく予定です。ただ、更新日は 不定期です(^^; 新しい原稿を上げたらこのメルマガでもお知らせいたします。 というわけで、今後もWebプログラミングをよろしくお願いいたします! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CGI(Perl)基本動作 その1:「HelloWorld!」 ────────────────────────────────────── しばらくの間はPerlを使用したCGIを取り上げます。 今回はその第一回。まずは実行する方法を覚えましょう。 ─────── ソース ─────── #!/usr/bin/perl print "Content-type: text/plain\n"; print "\n"; print "Hello!World"; exit(0); ─────── 実行方法 ─────── テキストエディタ(メモ帳やSimpleText)などで上記のソース(プログラム)を 保存し、CGIとして実行してください。 ■大雑把な手順 (1)テキストエディタに上記のソースをコピー&ペーストします。 ※一行目はあなたの環境に合わせて変更してください。 よく分からない場合は、あなたが契約しているISPのサポートか、 システム管理者に「Perlのフルパスを教えてくれ」と聞いてく ださい。 (2)hello.cgiなど、適当な名前をつけて保存します。 ※大抵の場合、拡張子は「.cgi」でなければなりません。 (3)FTPクライアント(FFFTP,Fetchなど)を使用し、Webサーバに アップロードします。必ずアスキーモードで上げましょう。 (4)先ほどアップロードしたファイルを、FTPクライアントやtel netなどで、パーミションを 755 に変更してください。 ※実行権限を与えれば良いので、 755でなくてもかまいません。 (5)上記のファイルをブラウザで訪れます。 InternalServerErrorなどが出る場合は以下を確認してください。 □CGIは何も設定などしなくても使えるか ※.htaccessなどの設定が必要な場合があります。 またISPによってはCGIの使用が禁止されています。 □サーバにPerlはインストールされているか、また実行権限があるか。 □Perlのパス(一行目)は正確か □ファイル名は「xxxx.cgi」か □アスキーモードで上げているか □パーミションの設定を正確にしているか □訪れたURLは正確か もしどうしても分からない場合はサポートBBSでご質問ください。 http://www.ichikoro.com/webp/bbs/ ─────── 解 説 ─────── ソースを追いながら、順番に解説していきましょう。 > #!/usr/bin/perl 1行目については、上にある「CGIを動かすには?」をご覧ください。 > print "Content-type: text/plain\n"; printした物が、直接ブラウザにわたります。 (実際には、まずWebサーバが受け取った後にブラウザへ渡しています) この行は、 「これから渡すデータが何か」 を表しています。 CGIのルールとして、必ずこの行が必要になります。 これを記述しないとInternalServerErrorとなり、期待した動作をしてくれなくなり ます。 ここでは“text/plain”つまり「テキスト」を表します。\nは改行のことです。 この、“text/plain”の部分がHTMLの場合は“text/html”となり、GIFの場合は “image/gif”などとなります。 > print "\n"; データの種別が何かを渡したら、今度は改行だけの「空行」をブラウザに渡します。 これが区切りとなり、データの情報と実際のデータがどこで分かれているかを判別 するキッカケになるのです。 > print "Hello!World"; 空行の後は、実際のデータを渡します。 この"Hello!World"の部分を色々と変えて実行しると楽しいですよ。 > exit(0); exitはプログラムを終了する命令(関数)です。 この場合は無くても問題ありません。 ※プログラム終端まで実行すると自動的に終了します ─────── 次回予告 ─────── 次回はCGIにデータ(クエリ)を渡す方法を紹介します。 ─────── 分からない ─────── いまいちよく分からない場合は、以下へれっつらごー。 ・サポートBBS このメルマガ専用のサポート掲示板 http://www.ichikoro.com/webp/bbs/ ・CGIプログラミングML CGIなどWebに関する話題を繰り広げるメーリングリスト このメルマガとは何の関係もありませんので発言時は注意を。 http://www.ichikoro.com/cgi/ml/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 編 集 後 記 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ この原稿を仕上げている日の朝(金曜日)、高校時代の担任から電話がかかってき ました。以前お話したとおり、大学入試を受けるために必要な書類を依頼してい た件だったのです。何年ぶりでしょう?すごく懐かしかったです。 かつべ「あれ?先生って今もこの高校なんですか?」 元担任「お前らが出た後異動になって、今年帰ってきたんだよ」 最初電話した時は全く知らない先生だったので、どうなる事かと思ったのですが、 元担任に書類をまとめてもらえるなら、これ以上の安心はありません。何か運命を 感じた瞬間でした。 そうそう、会社に相談したところ、快くお願いを聞き届けてもらい、いい環境に めぐり合えたなぁと、うれしい気持ちで一杯でした。 藤原和博さんの著書「リクルートという奇跡」の中に出てくる、リクルートが事件 前まで掲げていた「自ら機会を創り出し、機会によって自らを変えよ」という社訓が、 頭の中に響いています。 今度のことを決心していなかったら、自分がどんな環境にいるのか改めて考える ことは無かったでしょうし、色々な人と接点を持つこともなかったと思います。 何でもいいから、自分できっかけを作りさえすれば、きっと出口がみつかるんじゃ ないか、そんなことを考えていました。 しかし.....受かるかなぁ。 今のところ、それが一番の問題だ(笑) さて、2ヶ月あまりの充電期間ありがとうございました。 これからは毎週月曜日にお届けする予定です。気まぐれ屋なので、また小休止を いただくこともあると思いますが、温かい目で見守ってやってください。 よろしくお願いいたします。 それでは、また来週(^^)/ #今日は2X歳の誕生日です。 #どうやらカーセンサーの創刊日らしいです(笑) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 【 Webプログラミング Code Sample 】 発 行 : ichikoro.com 発行責任者 : 勝部 麻季人 < katsube@ichikoro.com > Webサイト : < http://www.ichikoro.com/webp/ > お問い合わせ先 : < mm-webp@ichikoro.com > Powerd by まぐまぐ All Right Reserved, CopyRight(C) 2001 Webプログラミング Code Sample ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■