Perl初心者の部屋  イントロ  モジュール  CGIとWWWサーバ  特定プログラミングの質問  セキュリティ
                       .d8888b.    .d8888b.   8888888
                      d88P  Y88b  d88P  Y88b    888
                      888    888  888    888    888
                      888         888           888
                      888         888  88888    888
                      888    888  888    888    888
                      Y88b  d88P  Y88b  d88P    888
                       "Y8888P"    "Y8888P88  8888888

                       PCP => Perl CGI Program (ming)

                                Version 1.0

Shishir Gundavaram <shishir@ora.com>
Tom Christiansen <tchrist@perl.com>

工事中

このページは大幅に手を入れる必要があります。 すでにやるべきあるいは解決すべきリストはあるのですが、 さらなる提案は常に歓迎します。 Idiot's Guide to Solving も参照して下さい。

--tchrist


このページは、 CAPNあるいはPerl.comの Perl CGI Programming FAQを非商用転載可ということで訳者が勝手に 翻訳したものです。万一誤訳等により損害が発生しても 免責とさせて頂きます。
ちゃんとした訳は田辺茂也さん監訳のShishir Gundavaramさん著 「CGIプログラミング」(株)オライリー・ジャパン発行/ (株)オーム社発売 定価4,996円 ISBN4-9200900-13-3 の付録Aについています。
なお、当和訳のLHA圧縮版をここ に置いておきますので、ご利用下さい。

1.0 - イントロダクション

Q1.1: 何故私のHTMLページ/フォームはスクリプトを必要とするのですか?

Q1.2: CGIの由来は何ですか?

Q1.3: そもそも、スクリプトとは何なのですか?  スクリプトを使って何ができるのですか?

Q1.4: Perlとは何ですか、何故そんなに大勢の人がCGI用にそれを利用するのですか?

Q1.5: CGIやPerlプログラミングについてのオンライン文書や書籍はあるのですか?

Q1.6: この種の事に関するメーリングリストやニュースグループはあるのですか?

Q1.7: ネット上にこれに関するメールや投稿のアーカイブがありますか?

2.0 - モジュール

Q2.1: CGIスクリプトのコードを書く時は全てPerl CGIモジュールを 使用すべきなのでしょうか? 自分でやるより簡単ではないのですか?

Q2.2: xyzモジュールがどう機能するのかどうやって推し測れば いいのですか?

Q2.3: Perl4で利用できるCGIやWWWライブラリは何がありますか?

Q2.4: Perl5で利用できるCGIモジュールには何がありますか?  どれを利用すべきでしょうか、又その理由は?

Q2.5: こんなにたくさんのCGIperlライブラリが何故オブジェクト指向に なっているのですか?  私はこのオブジェクト指向(以下OOと略)がちっともわかりません。  非プログラマが利用できるもっと簡単なライブラリはないのですか?  どの位難しいのですか?

3.0 - CGI と WWW サーバ

Q3.1: 私のPCPは実行するのにどこに住まわせるべきでしょうか?  cgi-binディレクトリは何のためにあるのですか?

Q3.2: ファイルアクセス権限とは何ですか?  どうしたらそれを変更できますか?

Q3.3: PerlをどこにインストールすればPerlを実行できるようになりますか?

Q3.4: "Server: Error 500"メッセージが出るのですが、どうしてでしょうか?

Q3.5: データをセーブするためにファイルをオープンするよう書いているのですが、 open()コマンドが失敗します。 どうなっているのでしょうか?

4.0 - 特定のプログラミング質問

Q4.1: 利用者に、あるフォームに記入してもらって、私宛にメールしてもらいたいのです。  どうしたらこれができるでしょうか?  その方法を示す例が何かありますか?

Q4.2: フォームメールスクリプトは複雑にみえます。 どうしてmailto:URLを使って、利用者が書き込んでくれた情報を私宛に単に メールするだけではいけないのでしょうか?

Q4.3: MacやMSーDOS、Windows、NTのような非UNIXプラットホームからPCPを行うには どうすればよいでしょうか?  私のPCPはこれら全ての環境の間で移植できるのでしょうか?  それは透過的にできるのでしょうか ? 私はUNIXサーバにアカウントがあるのですが、Windows/Macシステムで仕事をして います。私自身のシステムでCGIスクリプトをテストするにはどうすれば いいのでしょうか?

Q4.4: PCPの中では、STDERRとSTDINとSTDOUTはどこに接続されるのですか?

Q4.5: アクセスカウンタスクリプトを書くにはどうしたらいいですか?

Q4.6: Perlの置換を使って文書からHTMLタグを全部取り去るにはどうしたら いいでしょうか?

Q4.7: どんなユーザ/ホスト/ブラウザが私のプログラムを呼び出しているのか 表示するにはどうしたらいいですか?

Q4.8: 人々は私のPCPが読めますか?  そうならば、その人達が私のコードがどのように機能しているか知ってしまうという セキュリティの問題はありませんか?  どうやってそれを隠せばよいでしょうか?

Q4.9: 全Perlライブラリを私のhtdocsディレクトリにコピーしなければならない のでしょうか?

Q4.10: どうして人々にパスワードや社会保証番号やクレジットカード番号を入力させる べきではないのでしょうか? TYPE="password"とはそのためにあるのでは ないのですか?

Q4.11: ネットスケープ対それ以外の世界用に別々のページを生成するには どうしたらいいでしょうか?

Q4.12: どうしてsystem ()の出力が正しい順序で出てこないのでしょうか?

Q4.13: ネットスケープはJavaをサポートしていると聞いています。 もうPerlの代わりにJavaを使わなければならないということなのですか?  そうすべきなのでしょうか?

Q4.14: どうしたら私の環境変数にアクセスできますか?  時々異なっているのはどうしてですか?

Q4.15: 私の出力がむちゃくちゃになっているのはどうしてでしょうか?  ("if b < a" のようなものがめちゃめちゃです)

Q4.16: 私のPCPはコマンドラインから実行するときは動くのですが、 ブラウザからだと動きません。どうしてでしょうか?

Q4.17: 私のPCPはうまく動いているのですが、出力ファイルに書き込めません。 どうしてでしょうか?

Q4.18: 状態を維持する、あるいはいくつかのエントリポイントのあるフォームを作るには どうしたらいいでしょうか?

Q4.19: webブラウザから走らせずにPCPをデバッグするにはどうしたらいいでしょうか?

Q4.20: <FORM>タグを使わないでPCPをcallするには どうしたらいいのでしょうか?

Q4.21: 何も記入しないでフォームをcallするのをやめてもらうにはどうしたら いいでしょうか? 人々はなぜこれをし続けるのでしょうか?

Q4.22: server response codesとは何ですか? またどんな意味があるのですか?

Q4.23: なぜ

print "Location: http://host/page.html\n"
はうまく機能しないのでしょうか?  1回目だけちゃんと動き、その後は間違ってリダイレクトされるのは どうしてでしょうか?

Q4.24: 私のHTMLページの一番下の所に自動的に

"Last updated: ..."
行を加えたいのですが、どうすればいいのでしょうか?  あるいは、SSIページではこれはできないのでしょうか?  CGIスクリプトの日付はどうやったらわかりますか?

Q4.25: 簡単なタスクだけどPCPだとひどく複雑になってしまうのでシェルの方が いいというのはどんな時でしょうか?  難しい事に対して十分力を発揮できない場合はどんな時ですか?  Cについてはどうですか?

5.0 - セキュリティ

Q5.1: PCPはシェルやCより安全なのですか、そうではないのですか?

Q5.2: 特にどんなセキュリティ項目に関心を寄せるべきでしょうか?

Q5.3: みんなが
http://bigidiot.abuse-me.com/perl.exe?foo.pl
は危険だといっていますがどうしてですか?  どれくらい悪いことなのでしょうか?

Q5.4: どうやったら安全にbacktickを使ってプログラムを callできますか?
@ans = `grep '$user_field' some.file`;
は安全ではないというのは本当ですか?

Q5.5: /$user_variable/ が Perl 5ではセキュリティホールになっているというのは本当ですか?


This document, and all its parts, are Copyright (c) 1996, Shishir Gundavaram and Tom Christiansen. All rights reservered. Permisson to distribute this collection, in part or full, via electronic means (emailed, posted or archived) or printed copy are granted providing that no charges are involved, reasonable attempt is made to use the most current version, and all credits and copyright notices are retained. Requests for other distribution rights, including incorporation in commercial products, such as books, magazine articles, or CD-ROMs should be made to either of the authors.


ご意見、ご要望は、 電子メールまたは 投稿にお願い致します。

ホームページへ戻る。